Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Sailassist
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
54
Merge Requests
54
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gr-ssv
Sailassist
Commits
b579eb2b
Commit
b579eb2b
authored
Oct 15, 2026
by
shigemi miura
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
iOS27 iPhoneでタブボタンが押せない不具合を修正
通信処理の見直し
parent
1734c216
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
217 additions
and
267 deletions
+217
-267
project.pbxproj
Seilassist/Pods/Pods.xcodeproj/project.pbxproj
+14
-11
GetPushHistory.swift
Seilassist/Sailassist/Alert/GetPushHistory.swift
+1
-1
GetMessage.swift
Seilassist/Sailassist/Chat/GetMessage.swift
+1
-1
ChatInputViewModel.swift
...assist/Sailassist/Chat/ViewModel/ChatInputViewModel.swift
+2
-2
EcaArea.swift
Seilassist/Sailassist/ECA/EcaArea.swift
+1
-1
EcaTask.swift
Seilassist/Sailassist/ECA/EcaTask.swift
+1
-1
GetEcaList.swift
Seilassist/Sailassist/ECA/GetEcaList.swift
+1
-1
LoginView.swift
Seilassist/Sailassist/Login/LoginView.swift
+5
-1
InputUserNameView.swift
Seilassist/Sailassist/Login/View/InputUserNameView.swift
+1
-1
MonitoringRoute.swift
Seilassist/Sailassist/Map/MonitoringRoute.swift
+1
-1
EcaListMainView.swift
Seilassist/Sailassist/Map/Task/View/EcaListMainView.swift
+2
-2
EcaListView.swift
Seilassist/Sailassist/Map/Task/View/EcaListView.swift
+50
-41
EcaSettingMainView.swift
Seilassist/Sailassist/Map/Task/View/EcaSettingMainView.swift
+2
-2
FuelSwitchingMainView.swift
...sist/Sailassist/Map/Task/View/FuelSwitchingMainView.swift
+2
-2
MenuMainView.swift
Seilassist/Sailassist/Map/Task/View/MenuMainView.swift
+1
-1
NgaNotificationMainView.swift
...st/Sailassist/Map/Task/View/NgaNotificationMainView.swift
+2
-2
NgaSettingMainView.swift
Seilassist/Sailassist/Map/Task/View/NgaSettingMainView.swift
+2
-2
GetManualUrl.swift
Seilassist/Sailassist/Menu/GetManualUrl.swift
+1
-1
GetNgaList.swift
Seilassist/Sailassist/NGA/GetNgaList.swift
+1
-1
GetInformation.swift
Seilassist/Sailassist/ServerSession/GetInformation.swift
+1
-1
ServerSession.swift
Seilassist/Sailassist/ServerSession/ServerSession.swift
+81
-181
MainTabView.swift
Seilassist/Sailassist/Tab/View/MainTabView.swift
+44
-10
No files found.
Seilassist/Pods/Pods.xcodeproj/project.pbxproj
View file @
b579eb2b
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
dependencies
=
(
dependencies
=
(
);
);
name
=
"AzureNotificationHubs-iOS"
;
name
=
"AzureNotificationHubs-iOS"
;
productName
=
"AzureNotificationHubs-iOS"
;
};
};
/* End PBXAggregateTarget section */
/* End PBXAggregateTarget section */
...
@@ -121,7 +122,7 @@
...
@@ -121,7 +122,7 @@
99743ABC5876BBF855E5EE7D4D9BBFBC
/* HubConnection.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HubConnection.swift
;
path
=
Sources/SignalRClient/HubConnection.swift
;
sourceTree
=
"<group>"
;
};
99743ABC5876BBF855E5EE7D4D9BBFBC
/* HubConnection.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HubConnection.swift
;
path
=
Sources/SignalRClient/HubConnection.swift
;
sourceTree
=
"<group>"
;
};
998C647A59261C90EA8DF5F841F81ED8
/* Pods-Sailassist-umbrella.h */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"Pods-Sailassist-umbrella.h"
;
sourceTree
=
"<group>"
;
};
998C647A59261C90EA8DF5F841F81ED8
/* Pods-Sailassist-umbrella.h */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"Pods-Sailassist-umbrella.h"
;
sourceTree
=
"<group>"
;
};
9A23C67D0548DF810D1712CBE602461B
/* LongPollingTransport.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
LongPollingTransport.swift
;
path
=
Sources/SignalRClient/LongPollingTransport.swift
;
sourceTree
=
"<group>"
;
};
9A23C67D0548DF810D1712CBE602461B
/* LongPollingTransport.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
LongPollingTransport.swift
;
path
=
Sources/SignalRClient/LongPollingTransport.swift
;
sourceTree
=
"<group>"
;
};
9D940727FF8FB9C785EB98E56350EF41
/* Podfile */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
text.script.ruby
;
includeInIndex
=
1
;
indentWidth
=
2
;
lastKnownFileType
=
text
;
name
=
Podfile
;
path
=
../Podfile
;
sourceTree
=
SOURCE_ROOT
;
tabWidth
=
2
;
xcLanguageSpecificationIdentifier
=
xcode.lang.ruby
;
};
9D940727FF8FB9C785EB98E56350EF41
/* Podfile */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
text.script.ruby
;
includeInIndex
=
1
;
indentWidth
=
2
;
name
=
Podfile
;
path
=
../Podfile
;
sourceTree
=
SOURCE_ROOT
;
tabWidth
=
2
;
xcLanguageSpecificationIdentifier
=
xcode.lang.ruby
;
};
9F9AF6D4F29B01D2A9287D1F02E85155
/* JSONHubProtocol.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
JSONHubProtocol.swift
;
path
=
Sources/SignalRClient/JSONHubProtocol.swift
;
sourceTree
=
"<group>"
;
};
9F9AF6D4F29B01D2A9287D1F02E85155
/* JSONHubProtocol.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
JSONHubProtocol.swift
;
path
=
Sources/SignalRClient/JSONHubProtocol.swift
;
sourceTree
=
"<group>"
;
};
A347F728F5AAA8B41DAFE3AD233425B1
/* SwiftSignalRClient-Info.plist */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
text.plist.xml
;
path
=
"SwiftSignalRClient-Info.plist"
;
sourceTree
=
"<group>"
;
};
A347F728F5AAA8B41DAFE3AD233425B1
/* SwiftSignalRClient-Info.plist */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
text.plist.xml
;
path
=
"SwiftSignalRClient-Info.plist"
;
sourceTree
=
"<group>"
;
};
B1C92344570F3702174B6CD251E58E9E
/* Pods-SailAssistTests-acknowledgements.plist */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
text.plist.xml
;
path
=
"Pods-SailAssistTests-acknowledgements.plist"
;
sourceTree
=
"<group>"
;
};
B1C92344570F3702174B6CD251E58E9E
/* Pods-SailAssistTests-acknowledgements.plist */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
text.plist.xml
;
path
=
"Pods-SailAssistTests-acknowledgements.plist"
;
sourceTree
=
"<group>"
;
};
...
@@ -131,7 +132,7 @@
...
@@ -131,7 +132,7 @@
B718183D31FC6004F71844FA616C449A
/* HandshakeProtocol.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HandshakeProtocol.swift
;
path
=
Sources/SignalRClient/HandshakeProtocol.swift
;
sourceTree
=
"<group>"
;
};
B718183D31FC6004F71844FA616C449A
/* HandshakeProtocol.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HandshakeProtocol.swift
;
path
=
Sources/SignalRClient/HandshakeProtocol.swift
;
sourceTree
=
"<group>"
;
};
C0A0244A30A292024A7AB96104039BFB
/* HubConnectionExtensions.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HubConnectionExtensions.swift
;
path
=
Sources/SignalRClient/HubConnectionExtensions.swift
;
sourceTree
=
"<group>"
;
};
C0A0244A30A292024A7AB96104039BFB
/* HubConnectionExtensions.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HubConnectionExtensions.swift
;
path
=
Sources/SignalRClient/HubConnectionExtensions.swift
;
sourceTree
=
"<group>"
;
};
C99CC2D377D211487E80F9DC15293987
/* NegotiationResponse.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
NegotiationResponse.swift
;
path
=
Sources/SignalRClient/NegotiationResponse.swift
;
sourceTree
=
"<group>"
;
};
C99CC2D377D211487E80F9DC15293987
/* NegotiationResponse.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
NegotiationResponse.swift
;
path
=
Sources/SignalRClient/NegotiationResponse.swift
;
sourceTree
=
"<group>"
;
};
CA2C16F20715BBB5C1E288B9406F6303
/* WindowsAzureMessaging.xcframework */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
name
=
WindowsAzureMessaging.xcframework
;
path
=
"WindowsAzureMessaging-SDK-Apple/WindowsAzureMessaging.xcframework"
;
sourceTree
=
"<group>"
;
};
CA2C16F20715BBB5C1E288B9406F6303
/* WindowsAzureMessaging.xcframework */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
wrapper.xcframework
;
name
=
WindowsAzureMessaging.xcframework
;
path
=
"WindowsAzureMessaging-SDK-Apple/WindowsAzureMessaging.xcframework"
;
sourceTree
=
"<group>"
;
};
CB2414C9D8D9290C1D5F4211D6FC4E26
/* Logger.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
Logger.swift
;
path
=
Sources/SignalRClient/Logger.swift
;
sourceTree
=
"<group>"
;
};
CB2414C9D8D9290C1D5F4211D6FC4E26
/* Logger.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
Logger.swift
;
path
=
Sources/SignalRClient/Logger.swift
;
sourceTree
=
"<group>"
;
};
D1D56B5309D1F749EC584E7F5D901428
/* HubConnectionDelegate.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HubConnectionDelegate.swift
;
path
=
Sources/SignalRClient/HubConnectionDelegate.swift
;
sourceTree
=
"<group>"
;
};
D1D56B5309D1F749EC584E7F5D901428
/* HubConnectionDelegate.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HubConnectionDelegate.swift
;
path
=
Sources/SignalRClient/HubConnectionDelegate.swift
;
sourceTree
=
"<group>"
;
};
D282F486E6C5E74D2F27BF5ED45ADD47
/* Pods-SailAssistTests-umbrella.h */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"Pods-SailAssistTests-umbrella.h"
;
sourceTree
=
"<group>"
;
};
D282F486E6C5E74D2F27BF5ED45ADD47
/* Pods-SailAssistTests-umbrella.h */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"Pods-SailAssistTests-umbrella.h"
;
sourceTree
=
"<group>"
;
};
...
@@ -143,7 +144,7 @@
...
@@ -143,7 +144,7 @@
DFFD42573E1097252DD74B9B8686713D
/* ServerInvocationHandler.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
ServerInvocationHandler.swift
;
path
=
Sources/SignalRClient/ServerInvocationHandler.swift
;
sourceTree
=
"<group>"
;
};
DFFD42573E1097252DD74B9B8686713D
/* ServerInvocationHandler.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
ServerInvocationHandler.swift
;
path
=
Sources/SignalRClient/ServerInvocationHandler.swift
;
sourceTree
=
"<group>"
;
};
E04B4C3FF284BC409C8436B3C844044C
/* SwiftSignalRClient-prefix.pch */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"SwiftSignalRClient-prefix.pch"
;
sourceTree
=
"<group>"
;
};
E04B4C3FF284BC409C8436B3C844044C
/* SwiftSignalRClient-prefix.pch */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
"SwiftSignalRClient-prefix.pch"
;
sourceTree
=
"<group>"
;
};
E347DFCE3670A0953EA7E9880C7723D0
/* SignalRError.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
SignalRError.swift
;
path
=
Sources/SignalRClient/SignalRError.swift
;
sourceTree
=
"<group>"
;
};
E347DFCE3670A0953EA7E9880C7723D0
/* SignalRError.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
SignalRError.swift
;
path
=
Sources/SignalRClient/SignalRError.swift
;
sourceTree
=
"<group>"
;
};
E7AFB048F72A32D1AB967A9164E20741
/* SwiftSignalRClient
*/
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.framework
;
includeInIndex
=
0
;
name
=
SwiftSignalRClient
;
path
=
SwiftSignalRClient.framework
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
E7AFB048F72A32D1AB967A9164E20741
/* SwiftSignalRClient
.framework */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.framework
;
includeInIndex
=
0
;
path
=
SwiftSignalRClient.framework
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
F04040FA4924616899E5F9CD0D5FEF94
/* HttpConnection.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HttpConnection.swift
;
path
=
Sources/SignalRClient/HttpConnection.swift
;
sourceTree
=
"<group>"
;
};
F04040FA4924616899E5F9CD0D5FEF94
/* HttpConnection.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
HttpConnection.swift
;
path
=
Sources/SignalRClient/HttpConnection.swift
;
sourceTree
=
"<group>"
;
};
F371DF14209E4C63D0D1BFF890B0E44D
/* Pods-SailAssistTests */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.framework
;
includeInIndex
=
0
;
name
=
"Pods-SailAssistTests"
;
path
=
Pods_SailAssistTests.framework
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
F371DF14209E4C63D0D1BFF890B0E44D
/* Pods-SailAssistTests */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.framework
;
includeInIndex
=
0
;
name
=
"Pods-SailAssistTests"
;
path
=
Pods_SailAssistTests.framework
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
FAD4FBDFB36028046481AC609256BC25
/* Connection.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
Connection.swift
;
path
=
Sources/SignalRClient/Connection.swift
;
sourceTree
=
"<group>"
;
};
FAD4FBDFB36028046481AC609256BC25
/* Connection.swift */
=
{
isa
=
PBXFileReference
;
includeInIndex
=
1
;
lastKnownFileType
=
sourcecode.swift
;
name
=
Connection.swift
;
path
=
Sources/SignalRClient/Connection.swift
;
sourceTree
=
"<group>"
;
};
...
@@ -287,7 +288,7 @@
...
@@ -287,7 +288,7 @@
children
=
(
children
=
(
32C8F03288ABF8CB2E1A04518F1394B9
/* Pods-Sailassist */
,
32C8F03288ABF8CB2E1A04518F1394B9
/* Pods-Sailassist */
,
F371DF14209E4C63D0D1BFF890B0E44D
/* Pods-SailAssistTests */
,
F371DF14209E4C63D0D1BFF890B0E44D
/* Pods-SailAssistTests */
,
E7AFB048F72A32D1AB967A9164E20741
/* SwiftSignalRClient */
,
E7AFB048F72A32D1AB967A9164E20741
/* SwiftSignalRClient
.framework
*/
,
);
);
name
=
Products
;
name
=
Products
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -327,7 +328,6 @@
...
@@ -327,7 +328,6 @@
09BBFD81D450AA2C354BDC78D4AF50E6
/* WebsocketsTransport.swift */
,
09BBFD81D450AA2C354BDC78D4AF50E6
/* WebsocketsTransport.swift */
,
C80DDBE8FD00464F8F959003EF78F8BF
/* Support Files */
,
C80DDBE8FD00464F8F959003EF78F8BF
/* Support Files */
,
);
);
name
=
SwiftSignalRClient
;
path
=
SwiftSignalRClient
;
path
=
SwiftSignalRClient
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
...
@@ -346,7 +346,6 @@
...
@@ -346,7 +346,6 @@
1187AA037CB2DE219A69DE3350C6828B
/* Frameworks */
,
1187AA037CB2DE219A69DE3350C6828B
/* Frameworks */
,
6AAA309192D5B46A98CB622F6E79D3D7
/* Support Files */
,
6AAA309192D5B46A98CB622F6E79D3D7
/* Support Files */
,
);
);
name
=
"AzureNotificationHubs-iOS"
;
path
=
"AzureNotificationHubs-iOS"
;
path
=
"AzureNotificationHubs-iOS"
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
...
@@ -434,7 +433,7 @@
...
@@ -434,7 +433,7 @@
);
);
name
=
SwiftSignalRClient
;
name
=
SwiftSignalRClient
;
productName
=
SwiftSignalRClient
;
productName
=
SwiftSignalRClient
;
productReference
=
E7AFB048F72A32D1AB967A9164E20741
/* SwiftSignalRClient */
;
productReference
=
E7AFB048F72A32D1AB967A9164E20741
/* SwiftSignalRClient
.framework
*/
;
productType
=
"com.apple.product-type.framework"
;
productType
=
"com.apple.product-type.framework"
;
};
};
/* End PBXNativeTarget section */
/* End PBXNativeTarget section */
...
@@ -500,10 +499,14 @@
...
@@ -500,10 +499,14 @@
inputFileListPaths
=
(
inputFileListPaths
=
(
"${PODS_ROOT}/Target Support Files/AzureNotificationHubs-iOS/AzureNotificationHubs-iOS-xcframeworks-input-files.xcfilelist"
,
"${PODS_ROOT}/Target Support Files/AzureNotificationHubs-iOS/AzureNotificationHubs-iOS-xcframeworks-input-files.xcfilelist"
,
);
);
inputPaths
=
(
);
name
=
"[CP] Copy XCFrameworks"
;
name
=
"[CP] Copy XCFrameworks"
;
outputFileListPaths
=
(
outputFileListPaths
=
(
"${PODS_ROOT}/Target Support Files/AzureNotificationHubs-iOS/AzureNotificationHubs-iOS-xcframeworks-output-files.xcfilelist"
,
"${PODS_ROOT}/Target Support Files/AzureNotificationHubs-iOS/AzureNotificationHubs-iOS-xcframeworks-output-files.xcfilelist"
,
);
);
outputPaths
=
(
);
runOnlyForDeploymentPostprocessing
=
0
;
runOnlyForDeploymentPostprocessing
=
0
;
shellPath
=
/bin/sh
;
shellPath
=
/bin/sh
;
shellScript
=
"\"${PODS_ROOT}/Target Support Files/AzureNotificationHubs-iOS/AzureNotificationHubs-iOS-xcframeworks.sh\"\n"
;
shellScript
=
"\"${PODS_ROOT}/Target Support Files/AzureNotificationHubs-iOS/AzureNotificationHubs-iOS-xcframeworks.sh\"\n"
;
...
@@ -698,7 +701,7 @@
...
@@ -698,7 +701,7 @@
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
1.0
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
5.6
;
LD_RUNPATH_SEARCH_PATHS
=
(
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(inherited)"
,
"@executable_path/Frameworks"
,
"@executable_path/Frameworks"
,
...
@@ -857,7 +860,7 @@
...
@@ -857,7 +860,7 @@
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
1.0
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
5.6
;
LD_RUNPATH_SEARCH_PATHS
=
(
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(inherited)"
,
"@executable_path/Frameworks"
,
"@executable_path/Frameworks"
,
...
@@ -929,7 +932,7 @@
...
@@ -929,7 +932,7 @@
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
1.0
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
5.6
;
LD_RUNPATH_SEARCH_PATHS
=
(
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(inherited)"
,
"@executable_path/Frameworks"
,
"@executable_path/Frameworks"
,
...
@@ -1046,7 +1049,7 @@
...
@@ -1046,7 +1049,7 @@
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
GCC_PREFIX_HEADER
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-prefix.pch"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INFOPLIST_FILE
=
"Target Support Files/SwiftSignalRClient/SwiftSignalRClient-Info.plist"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
INSTALL_PATH
=
"$(LOCAL_LIBRARY_DIR)/Frameworks"
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
1.0
;
IPHONEOS_DEPLOYMENT_TARGET
=
1
5.6
;
LD_RUNPATH_SEARCH_PATHS
=
(
LD_RUNPATH_SEARCH_PATHS
=
(
"$(inherited)"
,
"$(inherited)"
,
"@executable_path/Frameworks"
,
"@executable_path/Frameworks"
,
...
...
Seilassist/Sailassist/Alert/GetPushHistory.swift
View file @
b579eb2b
...
@@ -20,7 +20,7 @@ class GetPushHistory {
...
@@ -20,7 +20,7 @@ class GetPushHistory {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ResPushHistory
]
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
[
ResPushHistory
]
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
for
push
in
res
{
for
push
in
res
{
if
let
id
=
push
.
id
{
if
let
id
=
push
.
id
{
...
...
Seilassist/Sailassist/Chat/GetMessage.swift
View file @
b579eb2b
...
@@ -17,7 +17,7 @@ class GetMessage {
...
@@ -17,7 +17,7 @@ class GetMessage {
switch
response
{
switch
response
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ResGetMessages
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
ResGetMessages
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
if
res
.
mode
==
1
{
if
res
.
mode
==
1
{
SharingData
.
message
.
mode
=
true
SharingData
.
message
.
mode
=
true
...
...
Seilassist/Sailassist/Chat/ViewModel/ChatInputViewModel.swift
View file @
b579eb2b
...
@@ -96,7 +96,7 @@ class ChatInputViewModel: ObservableObject {
...
@@ -96,7 +96,7 @@ class ChatInputViewModel: ObservableObject {
print
(
debug
:
"Upload success:
\(
response
)
"
)
print
(
debug
:
"Upload success:
\(
response
)
"
)
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
_
=
serverSession
.
fromJSON
(
resultData
:
response
,
resltType
:
ResLogin
.
self
)
_
=
serverSession
.
fromJSON
(
resultData
:
response
,
res
u
ltType
:
ResLogin
.
self
)
sessionUploadImage
.
progress
=
0.0
// 完了後リセット
sessionUploadImage
.
progress
=
0.0
// 完了後リセット
isUploadingDialogPresented
=
false
isUploadingDialogPresented
=
false
...
@@ -120,7 +120,7 @@ class ChatInputViewModel: ObservableObject {
...
@@ -120,7 +120,7 @@ class ChatInputViewModel: ObservableObject {
print
(
debug
:
"Video upload success:
\(
response
)
"
)
print
(
debug
:
"Video upload success:
\(
response
)
"
)
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
_
=
serverSession
.
fromJSON
(
resultData
:
response
,
resltType
:
ResLogin
.
self
)
_
=
serverSession
.
fromJSON
(
resultData
:
response
,
res
u
ltType
:
ResLogin
.
self
)
SessionUploadImage
.
OnlyOne
.
progress
=
0.0
SessionUploadImage
.
OnlyOne
.
progress
=
0.0
isUploadingDialogPresented
=
false
isUploadingDialogPresented
=
false
...
...
Seilassist/Sailassist/ECA/EcaArea.swift
View file @
b579eb2b
...
@@ -70,7 +70,7 @@ class EcaArea {
...
@@ -70,7 +70,7 @@ class EcaArea {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ResEcaArea
]
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
[
ResEcaArea
]
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
print
(
debug
:
res
)
print
(
debug
:
res
)
for
ecaList
in
res
{
for
ecaList
in
res
{
...
...
Seilassist/Sailassist/ECA/EcaTask.swift
View file @
b579eb2b
...
@@ -35,7 +35,7 @@ class EcaTask {
...
@@ -35,7 +35,7 @@ class EcaTask {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ResShipStatus
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
ResShipStatus
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
SharingData
.
location
.
status
=
SharingData
.
location
.
setShipStatus
(
status
:
res
.
status
)
SharingData
.
location
.
status
=
SharingData
.
location
.
setShipStatus
(
status
:
res
.
status
)
SharingData
.
location
.
totalRmsAlarm
=
SharingData
.
location
.
setTotalRmsAlarm
(
alarm
:
res
.
totalRmsAlarm
)
SharingData
.
location
.
totalRmsAlarm
=
SharingData
.
location
.
setTotalRmsAlarm
(
alarm
:
res
.
totalRmsAlarm
)
...
...
Seilassist/Sailassist/ECA/GetEcaList.swift
View file @
b579eb2b
...
@@ -22,7 +22,7 @@ class GetEcaList {
...
@@ -22,7 +22,7 @@ class GetEcaList {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ReqTaskList
]
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
[
ReqTaskList
]
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
var
ecaAreas
=
ecaData
.
ecaArea
var
ecaAreas
=
ecaData
.
ecaArea
for
ares
in
ecaData
.
ecaArea
{
for
ares
in
ecaData
.
ecaArea
{
...
...
Seilassist/Sailassist/Login/LoginView.swift
View file @
b579eb2b
...
@@ -137,6 +137,10 @@ struct LoginView: View {
...
@@ -137,6 +137,10 @@ struct LoginView: View {
)
)
}
}
}
}
.
onDisappear
{
timer
?
.
invalidate
()
timer
=
nil
}
}
}
}
}
.
background
(
ColorSet
.
BackgroundPrimary
.
color
)
.
background
(
ColorSet
.
BackgroundPrimary
.
color
)
...
@@ -186,7 +190,7 @@ struct LoginView: View {
...
@@ -186,7 +190,7 @@ struct LoginView: View {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ResLogin
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
ResLogin
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
SharingData
.
my
.
id
=
res
.
id
SharingData
.
my
.
id
=
res
.
id
SharingData
.
my
.
shipId
=
res
.
shipId
SharingData
.
my
.
shipId
=
res
.
shipId
...
...
Seilassist/Sailassist/Login/View/InputUserNameView.swift
View file @
b579eb2b
...
@@ -95,7 +95,7 @@ struct InputUserNameView: View {
...
@@ -95,7 +95,7 @@ struct InputUserNameView: View {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ResLogin
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
ResLogin
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
SharingData
.
my
.
id
=
res
.
id
SharingData
.
my
.
id
=
res
.
id
SharingData
.
my
.
shipName
=
res
.
shipName
SharingData
.
my
.
shipName
=
res
.
shipName
...
...
Seilassist/Sailassist/Map/MonitoringRoute.swift
View file @
b579eb2b
...
@@ -21,7 +21,7 @@ class MonitoringRoute {
...
@@ -21,7 +21,7 @@ class MonitoringRoute {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
ResMonitoringRoute
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
ResMonitoringRoute
.
self
)
if
let
res
=
resjson
{
if
let
res
=
resjson
{
SharingData
.
map
.
wayPoints
=
[]
SharingData
.
map
.
wayPoints
=
[]
if
let
wayPoint
=
res
.
wayPoints
{
if
let
wayPoint
=
res
.
wayPoints
{
...
...
Seilassist/Sailassist/Map/Task/View/EcaListMainView.swift
View file @
b579eb2b
...
@@ -40,8 +40,8 @@ struct EcaListMainView: View {
...
@@ -40,8 +40,8 @@ struct EcaListMainView: View {
}
}
}
}
Spacer
()
//
Spacer()
.
frame
(
height
:
55
)
//
.frame(height: 55)
}
}
}
}
...
...
Seilassist/Sailassist/Map/Task/View/EcaListView.swift
View file @
b579eb2b
...
@@ -10,52 +10,61 @@ import SwiftUI
...
@@ -10,52 +10,61 @@ import SwiftUI
struct
EcaListView
:
View
{
struct
EcaListView
:
View
{
@ObservedObject
var
taskViewModel
:
TaskViewModel
@ObservedObject
var
taskViewModel
:
TaskViewModel
@ObservedObject
var
ecaData
=
SharingData
.
eca
@ObservedObject
var
ecaData
=
SharingData
.
eca
private
enum
Layout
{
static
let
rowHeight
:
CGFloat
=
62
static
let
horizontalPadding
:
CGFloat
=
30
static
let
iconSize
:
CGFloat
=
12
static
let
buttonSize
:
CGFloat
=
28
}
var
body
:
some
View
{
var
body
:
some
View
{
ForEach
(
ecaData
.
ecaArea
.
map
{
$0
.
1
}
.
sorted
{
$0
.
areaId
<
$1
.
areaId
},
id
:
\
.
name
){
eca
in
VStack
{
HStack
{
ForEach
(
ecaData
.
ecaArea
.
map
{
$0
.
1
}
.
sorted
{
$0
.
areaId
<
$1
.
areaId
},
id
:
\
.
areaId
){
eca
in
Text
(
eca
.
name
)
HStack
{
.
font
(
FontStyle
.
DefaultText
.
font
)
Text
(
eca
.
name
)
.
foregroundColor
(
ColorSet
.
Body
.
color
)
.
font
(
FontStyle
.
DefaultText
.
font
)
.
onTapGesture
{
.
foregroundColor
(
ColorSet
.
Body
.
color
)
ecaData
.
focusEca
=
eca
.
areaId
.
onTapGesture
{
ecaData
.
focusEca
=
eca
.
areaId
}
Spacer
()
if
!
eca
.
isEnable
{
Button
(
action
:
{
var
newData
=
eca
newData
.
isEnable
.
toggle
()
ecaData
.
editEcaArea
(
key
:
eca
.
areaId
,
value
:
newData
,
type
:
EcaOperation
.
Insert
)
// taskViewModel.viewMode = .FuelSwitching
taskViewModel
.
edittingEcaArea
=
eca
taskViewModel
.
viewMode
=
.
EcaSetting
},
label
:
{
Image
(
"icon_plus"
)
.
resizable
()
.
frame
(
width
:
Layout
.
iconSize
,
height
:
Layout
.
iconSize
)
.
padding
(
8
)
})
.
frame
(
width
:
Layout
.
buttonSize
,
height
:
Layout
.
buttonSize
)
.
background
(
.
primaryActiveIcon
)
.
cornerRadius
(
50
)
.
padding
()
}
else
{
Text
(
"Registered"
)
.
font
(
FontStyle
.
SupplementText2
.
font
)
.
frame
(
height
:
25
)
.
foregroundColor
(
ColorSet
.
ButtonDisable
.
color
)
.
padding
(
.
vertical
,
4
)
.
padding
(
.
horizontal
,
10
)
.
background
(
ColorSet
.
PrimaryDisable
.
color
)
.
cornerRadius
(
99
)
}
}
Spacer
()
if
!
eca
.
isEnable
{
Button
(
action
:
{
var
newData
=
eca
newData
.
isEnable
.
toggle
()
ecaData
.
editEcaArea
(
key
:
eca
.
areaId
,
value
:
newData
,
type
:
EcaOperation
.
Insert
)
taskViewModel
.
viewMode
=
.
FuelSwitching
taskViewModel
.
edittingEcaArea
=
eca
taskViewModel
.
viewMode
=
.
EcaSetting
},
label
:
{
Image
(
"icon_plus"
)
.
resizable
()
.
frame
(
width
:
12
,
height
:
12
)
.
padding
(
8
)
})
.
frame
(
width
:
28
,
height
:
28
)
.
background
(
.
primaryActiveIcon
)
.
cornerRadius
(
50
)
.
padding
()
}
else
{
Text
(
"Registered"
)
.
font
(
FontStyle
.
SupplementText2
.
font
)
.
frame
(
height
:
25
)
.
foregroundColor
(
ColorSet
.
ButtonDisable
.
color
)
.
padding
(
.
vertical
,
4
)
.
padding
(
.
horizontal
,
10
)
.
background
(
ColorSet
.
PrimaryDisable
.
color
)
.
cornerRadius
(
99
)
}
}
.
frame
(
height
:
Layout
.
rowHeight
)
.
padding
(
.
horizontal
,
Layout
.
horizontalPadding
)
Divider
()
.
background
(
.
white
)
}
}
.
frame
(
height
:
62
)
.
padding
(
.
horizontal
,
30
)
Divider
()
.
background
(
.
white
)
}
}
}
}
}
}
...
...
Seilassist/Sailassist/Map/Task/View/EcaSettingMainView.swift
View file @
b579eb2b
...
@@ -43,8 +43,8 @@ struct EcaSettingMainView: View {
...
@@ -43,8 +43,8 @@ struct EcaSettingMainView: View {
}
}
}
}
Spacer
()
//
Spacer()
.
frame
(
height
:
55
)
//
.frame(height: 55)
}
}
}
}
...
...
Seilassist/Sailassist/Map/Task/View/FuelSwitchingMainView.swift
View file @
b579eb2b
...
@@ -41,8 +41,8 @@ struct FuelSwitchingMainView: View {
...
@@ -41,8 +41,8 @@ struct FuelSwitchingMainView: View {
}
}
}
}
Spacer
()
//
Spacer()
.
frame
(
height
:
55
)
//
.frame(height: 55)
}
}
}
}
...
...
Seilassist/Sailassist/Map/Task/View/MenuMainView.swift
View file @
b579eb2b
...
@@ -36,7 +36,7 @@ struct MenuMainView: View {
...
@@ -36,7 +36,7 @@ struct MenuMainView: View {
}
}
}
}
Spacer
()
.
frame
(
height
:
55
)
//
Spacer().frame(height: 55)
}
}
.
padding
(
EdgeInsets
(
top
:
10
,
leading
:
8
,
bottom
:
13
,
trailing
:
17
))
.
padding
(
EdgeInsets
(
top
:
10
,
leading
:
8
,
bottom
:
13
,
trailing
:
17
))
}
}
...
...
Seilassist/Sailassist/Map/Task/View/NgaNotificationMainView.swift
View file @
b579eb2b
...
@@ -41,8 +41,8 @@ struct NgaNotificationMainView: View {
...
@@ -41,8 +41,8 @@ struct NgaNotificationMainView: View {
}
}
}
}
Spacer
()
//
Spacer()
.
frame
(
height
:
55
)
//
.frame(height: 55)
}
}
}
}
...
...
Seilassist/Sailassist/Map/Task/View/NgaSettingMainView.swift
View file @
b579eb2b
...
@@ -50,8 +50,8 @@ struct NgaSettingMainView: View {
...
@@ -50,8 +50,8 @@ struct NgaSettingMainView: View {
}
}
}
}
Spacer
()
//
Spacer()
.
frame
(
height
:
55
)
//
.frame(height: 55)
}
}
}
}
...
...
Seilassist/Sailassist/Menu/GetManualUrl.swift
View file @
b579eb2b
...
@@ -17,7 +17,7 @@ class GetManualUrl {
...
@@ -17,7 +17,7 @@ class GetManualUrl {
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
print
(
debug
:
String
(
data
:
resultData
,
encoding
:
.
utf8
)
as
Any
)
print
(
debug
:
String
(
data
:
resultData
,
encoding
:
.
utf8
)
as
Any
)
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ResGetManualUrl
]
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
[
ResGetManualUrl
]
.
self
)
if
var
res
=
resjson
{
if
var
res
=
resjson
{
for
index
in
res
.
indices
{
for
index
in
res
.
indices
{
let
convert
=
res
[
index
]
.
path
.
replacingOccurrences
(
of
:
" "
,
with
:
"%20"
)
let
convert
=
res
[
index
]
.
path
.
replacingOccurrences
(
of
:
" "
,
with
:
"%20"
)
...
...
Seilassist/Sailassist/NGA/GetNgaList.swift
View file @
b579eb2b
...
@@ -21,7 +21,7 @@ class GetNgaList {
...
@@ -21,7 +21,7 @@ class GetNgaList {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ReqNgaList
]
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
[
ReqNgaList
]
.
self
)
// if let res = resjson {
// if let res = resjson {
// var ngaTmp: Dictionary<UUID, RegisteredNga> = [:]
// var ngaTmp: Dictionary<UUID, RegisteredNga> = [:]
// for ngaList in res {
// for ngaList in res {
...
...
Seilassist/Sailassist/ServerSession/GetInformation.swift
View file @
b579eb2b
...
@@ -20,7 +20,7 @@ class GetInformation {
...
@@ -20,7 +20,7 @@ class GetInformation {
switch
result
{
switch
result
{
case
.
success
(
let
resultData
):
case
.
success
(
let
resultData
):
let
serverSession
=
ServerSession
()
let
serverSession
=
ServerSession
()
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
resltType
:
[
ResInformation
]
.
self
)
let
resjson
=
serverSession
.
fromJSON
(
resultData
:
resultData
,
res
u
ltType
:
[
ResInformation
]
.
self
)
SharingData
.
information
.
content
=
[]
SharingData
.
information
.
content
=
[]
if
let
res
=
resjson
{
if
let
res
=
resjson
{
SharingData
.
information
.
content
=
res
SharingData
.
information
.
content
=
res
...
...
Seilassist/Sailassist/ServerSession/ServerSession.swift
View file @
b579eb2b
...
@@ -9,225 +9,125 @@ import Foundation
...
@@ -9,225 +9,125 @@ import Foundation
typealias
SessionResponse
=
Result
<
Data
,
APIError
>
typealias
SessionResponse
=
Result
<
Data
,
APIError
>
enum
HTTPMethod
:
String
{
case
get
=
"GET"
case
post
=
"POST"
case
delete
=
"DELETE"
}
class
ServerSession
{
class
ServerSession
{
private
let
session
:
URLSession
/// JSON 文字列に変換
init
(
session
:
URLSession
=
.
shared
)
{
func
toJSON
<
T
>
(
_
reqparam
:
T
)
->
Data
!
where
T
:
Encodable
{
self
.
session
=
session
let
Jencoder
=
JSONEncoder
()
var
postdata
:
Data
!
do
{
postdata
=
try
Jencoder
.
encode
(
reqparam
)
}
catch
{
return
nil
}
return
postdata
}
}
/// JSON 文字列から変換
func
postJson
(
_
reqURL
:
URL
,
_
postdata
:
Data
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
func
fromJSON
<
T
>
(
resultData
:
Data
,
resltType
:
T
.
Type
)
->
T
!
where
T
:
Decodable
{
request
(
reqURL
:
reqURL
,
method
:
.
post
,
body
:
postdata
,
completion
:
completion
)
do
{
let
decoder
=
JSONDecoder
()
let
resjson
:
T
=
try
decoder
.
decode
(
resltType
.
self
,
from
:
resultData
)
return
resjson
}
catch
{
let
jsonstr
=
String
(
data
:
resultData
,
encoding
:
.
utf8
)
!
print
(
debug
:
"
\(
jsonstr
)
"
)
return
nil
}
}
}
func
postJson
(
_
req_url
:
URL
,
_
postdata
:
Data
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
func
getJson
(
_
reqURL
:
URL
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
var
req
=
URLRequest
(
url
:
req_url
)
request
(
reqURL
:
reqURL
,
method
:
.
get
,
body
:
nil
,
completion
:
completion
)
req
.
httpMethod
=
"POST"
}
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
httpBody
=
postdata
req
.
timeoutInterval
=
20
// タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
// サーバー送信
func
deleteJson
(
_
reqURL
:
URL
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
let
session
=
URLSession
(
configuration
:
.
default
,
delegate
:
nil
,
delegateQueue
:
OperationQueue
.
main
)
request
(
reqURL
:
reqURL
,
method
:
.
delete
,
body
:
nil
,
completion
:
completion
)
}
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
func
request
(
reqURL
:
URL
,
method
:
HTTPMethod
,
body
:
Data
?,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
session
.
finishTasksAndInvalidate
()
var
req
=
URLRequest
(
url
:
reqURL
)
req
.
httpMethod
=
method
.
rawValue
req
.
httpBody
=
body
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
timeoutInterval
=
20
// サーバー送信
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
do
{
do
{
if
error
!=
nil
{
if
error
!=
nil
{
print
(
debug
:
"clientError:
\(
String
(
describing
:
error
)
)
"
)
print
(
debug
:
"clientError:
\(
String
(
describing
:
error
)
)
"
)
throw
APIError
.
clientError
DispatchQueue
.
main
.
async
{
}
completion
(
.
failure
(
.
clientError
))
guard
let
indata
=
data
,
let
inresponse
=
response
as?
HTTPURLResponse
else
{
throw
APIError
.
responseError
}
if
inresponse
.
statusCode
!=
200
{
// let statusCode = inresponse.statusCode
// print(debug: "serverError: \(statusCode)")
throw
APIError
.
serverError
}
//Cookieを保存
if
let
fields
=
inresponse
.
allHeaderFields
as?
[
String
:
String
],
let
url
=
inresponse
.
url
{
for
cookie
in
HTTPCookie
.
cookies
(
withResponseHeaderFields
:
fields
,
for
:
url
)
{
HTTPCookieStorage
.
shared
.
setCookie
(
cookie
)
}
}
return
}
}
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
}
}
catch
{
if
error
as?
APIError
!=
nil
{
completion
(
.
failure
(
error
as!
APIError
))
}
else
{
completion
(
.
failure
(
.
unknown
))
}
}
})
.
resume
()
}
func
postForm
(
boundary
:
String
,
_
req_url
:
URL
,
_
postdata
:
Data
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
var
req
=
URLRequest
(
url
:
req_url
)
req
.
httpMethod
=
"POST"
req
.
setValue
(
"multipart/form-data; boundary=
\(
boundary
)
"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
setValue
(
"
\(
postdata
.
count
)
"
,
forHTTPHeaderField
:
"Content-Length"
)
req
.
httpBody
=
postdata
// req.timeoutInterval = 20 // タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
// let session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue.main)
URLSession
.
shared
.
dataTask
(
with
:
req
)
{(
data
,
response
,
error
)
in
// var req = URLRequest(url: req_url)
// req.httpMethod = "POST"
// let headers = ["Content-Type":"multipart/form-data; boundary=\(boundary)"]
// let urlConfig = URLSessionConfiguration.default
// urlConfig.httpAdditionalHeaders = headers
//
// // サーバー送信
// let session = URLSession(configuration: urlConfig)
// session.uploadTask(with: req, from: postdata, completionHandler: {(data, response, error) in
do
{
if
error
!=
nil
{
// print(debug: "clientError: \(error)")
completion
(
.
failure
(
.
unknown
))
throw
APIError
.
clientError
}
guard
let
indata
=
data
,
let
inresponse
=
response
as?
HTTPURLResponse
else
{
guard
let
indata
=
data
,
let
inresponse
=
response
as?
HTTPURLResponse
else
{
completion
(
.
failure
(
.
unknown
))
print
(
debug
:
"responseError"
)
throw
APIError
.
responseError
DispatchQueue
.
main
.
async
{
completion
(
.
failure
(
.
responseError
))
}
return
}
}
if
inresponse
.
statusCode
!=
200
{
completion
(
.
failure
(
.
unknown
))
guard
(
200
...
299
)
.
contains
(
inresponse
.
statusCode
)
else
{
// let statusCode = inresponse.statusCode
let
statusCode
=
inresponse
.
statusCode
// print(debug: "serverError: \(statusCode)")
print
(
debug
:
"serverError:
\(
statusCode
)
"
)
throw
APIError
.
serverError
DispatchQueue
.
main
.
async
{
completion
(
.
failure
(
.
serverError
))
}
return
}
}
//Cookieを保存
//Cookieを保存
if
let
fields
=
inresponse
.
allHeaderFields
as?
[
String
:
String
],
let
url
=
inresponse
.
url
{
if
method
==
.
post
{
for
cookie
in
HTTPCookie
.
cookies
(
withResponseHeaderFields
:
fields
,
for
:
url
)
{
if
let
httpResponse
=
response
as?
HTTPURLResponse
{
HTTPCookieStorage
.
shared
.
setCookie
(
cookie
)
if
let
fields
=
httpResponse
.
allHeaderFields
as?
[
String
:
String
],
let
url
=
inresponse
.
url
{
for
cookie
in
HTTPCookie
.
cookies
(
withResponseHeaderFields
:
fields
,
for
:
url
)
{
HTTPCookieStorage
.
shared
.
setCookie
(
cookie
)
}
}
}
}
}
}
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
completion
(
.
success
(
indata
))
}
}
}
catch
{
if
error
as?
APIError
!=
nil
{
completion
(
.
failure
(
error
as!
APIError
))
}
else
{
completion
(
.
failure
(
.
unknown
))
}
}
}
}
.
resume
()
catch
let
apiError
as
APIError
{
}
func
getJson
(
_
req_url
:
URL
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
var
req
=
URLRequest
(
url
:
req_url
)
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
req
.
timeoutInterval
=
20
// タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
// サーバー送信
let
session
=
URLSession
(
configuration
:
.
default
,
delegate
:
nil
,
delegateQueue
:
OperationQueue
.
main
)
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
session
.
finishTasksAndInvalidate
()
do
{
if
error
!=
nil
{
// print(debug: "clientError: \(error)")
completion
(
.
failure
(
.
unknown
))
throw
APIError
.
clientError
}
guard
let
indata
=
data
,
let
inresponse
=
response
as?
HTTPURLResponse
else
{
completion
(
.
failure
(
.
unknown
))
throw
APIError
.
responseError
}
if
inresponse
.
statusCode
!=
200
{
completion
(
.
failure
(
.
unknown
))
// let statusCode = inresponse.statusCode
// print(debug: "serverError: \(statusCode)")
throw
APIError
.
serverError
}
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
completion
(
.
failure
(
apiError
))
}
}
}
catch
{
}
if
error
as?
APIError
!=
nil
{
catch
{
completion
(
.
failure
(
error
as!
APIError
))
DispatchQueue
.
main
.
async
{
}
else
{
completion
(
.
failure
(
.
unknown
))
completion
(
.
failure
(
.
unknown
))
}
}
}
}
})
.
resume
()
})
.
resume
()
}
}
func
deleteJson
(
_
req_url
:
URL
,
completion
:
@escaping
(
SessionResponse
)
->
Void
){
// MARK: - JSON 文字列に変換
func
toJSON
<
T
>
(
_
reqparam
:
T
)
->
Data
?
where
T
:
Encodable
{
var
req
=
URLRequest
(
url
:
req_url
)
let
encoder
=
JSONEncoder
()
req
.
httpMethod
=
"DELETE"
var
postdata
:
Data
req
.
addValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
do
{
req
.
timeoutInterval
=
20
// タイムアウト3秒 → Amedasでタイムアウトエラー20秒に変更
postdata
=
try
encoder
.
encode
(
reqparam
)
}
catch
{
// サーバー送信
return
nil
let
session
=
URLSession
(
configuration
:
.
default
,
delegate
:
nil
,
delegateQueue
:
OperationQueue
.
main
)
}
return
postdata
session
.
dataTask
(
with
:
req
,
completionHandler
:
{(
data
,
response
,
error
)
in
}
session
.
finishTasksAndInvalidate
()
do
{
// MARK: - JSON 文字列から変換
if
error
!=
nil
{
func
fromJSON
<
T
>
(
resultData
:
Data
,
resultType
:
T
.
Type
)
->
T
?
where
T
:
Decodable
{
_
=
APIError
.
clientError
do
{
throw
APIError
.
clientError
let
decoder
=
JSONDecoder
()
}
let
resjson
:
T
=
try
decoder
.
decode
(
resultType
.
self
,
from
:
resultData
)
guard
let
indata
=
data
,
let
inresponse
=
response
as?
HTTPURLResponse
else
{
return
resjson
throw
APIError
.
responseError
}
catch
{
}
let
jsonstr
=
String
(
data
:
resultData
,
encoding
:
.
utf8
)
??
"invalid data"
if
inresponse
.
statusCode
!=
200
{
print
(
debug
:
"
\(
jsonstr
)
"
)
throw
APIError
.
serverError
return
nil
}
}
DispatchQueue
.
main
.
async
{
completion
(
.
success
(
indata
))
}
}
catch
{
if
error
as?
APIError
!=
nil
{
completion
(
.
failure
(
error
as!
APIError
))
}
else
{
completion
(
.
failure
(
.
unknown
))
}
}
})
.
resume
()
}
}
// HTTPCookieStorageに特定のCookieが保存されているかを調べる
//
MARK: -
HTTPCookieStorageに特定のCookieが保存されているかを調べる
func
isCookieSet
(
name
:
String
,
url
:
URL
)
->
Bool
{
func
isCookieSet
(
name
:
String
,
url
:
URL
)
->
Bool
{
if
let
cookies
=
HTTPCookieStorage
.
shared
.
cookies
(
for
:
url
)
{
if
let
cookies
=
HTTPCookieStorage
.
shared
.
cookies
(
for
:
url
)
{
for
cookie
in
cookies
{
return
cookies
.
contains
(
where
:
{
cookie
in
if
(
cookie
.
name
==
name
)
{
cookie
.
name
==
name
return
true
})
}
}
}
}
return
false
return
false
}
}
...
...
Seilassist/Sailassist/Tab/View/MainTabView.swift
View file @
b579eb2b
...
@@ -30,6 +30,15 @@ struct MainTabView: View {
...
@@ -30,6 +30,15 @@ struct MainTabView: View {
@State
private
var
offset
=
CGSize
.
zero
@State
private
var
offset
=
CGSize
.
zero
@State
var
isSignout
=
false
@State
var
isSignout
=
false
@State
private
var
sheetHeight
:
CGFloat
=
100
@State
private
var
dragStartHeight
:
CGFloat
=
100
@State
private
var
bottomInset
:
CGFloat
=
0
let
minHeight
:
CGFloat
=
100
let
midHeight
:
CGFloat
=
300
let
maxHeight
:
CGFloat
=
600
var
isTabWindowActive
:
Bool
{
var
isTabWindowActive
:
Bool
{
sceneDelegate
.
tabWindow
!=
nil
sceneDelegate
.
tabWindow
!=
nil
}
}
...
@@ -46,6 +55,14 @@ struct MainTabView: View {
...
@@ -46,6 +55,14 @@ struct MainTabView: View {
padView
padView
}
}
}
}
.
background
(
GeometryReader
{
proxy
in
Color
.
clear
.
onAppear
{
bottomInset
=
proxy
.
safeAreaInsets
.
bottom
}
}
)
.
onAppear
{
.
onAppear
{
SharingData
.
location
.
focusOwnShip
=
true
SharingData
.
location
.
focusOwnShip
=
true
configureTabBarAppearance
()
configureTabBarAppearance
()
...
@@ -53,7 +70,8 @@ struct MainTabView: View {
...
@@ -53,7 +70,8 @@ struct MainTabView: View {
}
}
private
var
phoneView
:
some
View
{
private
var
phoneView
:
some
View
{
ZStack
(
alignment
:
.
bottom
)
{
let
tabBarHeight
:
CGFloat
=
bottomInset
return
ZStack
(
alignment
:
.
bottom
)
{
TabView
(
selection
:
$
selectedTabModel
.
activeTab
)
{
TabView
(
selection
:
$
selectedTabModel
.
activeTab
)
{
mapTab
mapTab
if
SharingData
.
my
.
isCommunication
{
if
SharingData
.
my
.
isCommunication
{
...
@@ -62,17 +80,33 @@ struct MainTabView: View {
...
@@ -62,17 +80,33 @@ struct MainTabView: View {
NotificationView
()
.
tag
(
Tab
.
alert
)
NotificationView
()
.
tag
(
Tab
.
alert
)
MenuView
(
isSignout
:
$
isSignout
)
.
tag
(
Tab
.
menu
)
MenuView
(
isSignout
:
$
isSignout
)
.
tag
(
Tab
.
menu
)
}
}
.
sheet
(
isPresented
:
.
constant
(
isTaskSel
&&
isTabWindowActive
))
{
.
overlay
(
alignment
:
.
bottom
)
{
MenuTaskView
()
if
selectedTabModel
.
activeTab
==
.
map
{
.
zIndex
(
0
)
MenuTaskView
()
.
presentationDragIndicator
(
.
hidden
)
.
frame
(
height
:
max
(
minHeight
,
sheetHeight
-
tabBarHeight
))
.
presentationDetents
([
.
height
(
150
),
.
medium
,
.
fraction
(
0.99
)])
.
background
(
.
ultraThinMaterial
)
.
presentationCornerRadius
(
15
)
.
clipShape
(
RoundedRectangle
(
cornerRadius
:
16
))
.
presentationBackgroundInteraction
(
.
enabled
(
upThrough
:
.
medium
))
.
padding
(
.
bottom
,
tabBarHeight
)
.
presentationBackground
(
ColorSet
.
BackgroundSecondary
.
color
)
.
gesture
(
.
interactiveDismissDisabled
()
DragGesture
()
.
onChanged
{
value
in
let
newHeight
=
dragStartHeight
-
value
.
translation
.
height
sheetHeight
=
max
(
minHeight
,
min
(
maxHeight
,
newHeight
))
}
.
onEnded
{
_
in
let
detents
:
[
CGFloat
]
=
[
minHeight
,
midHeight
,
maxHeight
]
sheetHeight
=
detents
.
min
{
abs
(
$0
-
sheetHeight
)
<
abs
(
$1
-
sheetHeight
)
}
??
minHeight
dragStartHeight
=
sheetHeight
}
)
}
}
}
}
}
.
onAppear
{
dragStartHeight
=
sheetHeight
}
}
}
private
var
padView
:
some
View
{
private
var
padView
:
some
View
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment