diff --git a/Projects/App/Project.swift b/Projects/App/Project.swift index 6463ea14..bb8e9516 100644 --- a/Projects/App/Project.swift +++ b/Projects/App/Project.swift @@ -22,7 +22,8 @@ let project = Project.makeModule( .SPM.FirebaseCrashlytics, .SPM.FirebaseMessaging, .SPM.Nuke, - .SPM.NukeUI + .SPM.NukeUI, + .SPM.ADS ], resources: ["Resources/**"], infoPlist: .extendingDefault(with: [ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/100.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/100.png index 883e7df9..0bb342a7 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/100.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/1024.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/1024.png index a9760a02..e6b9e9e9 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/1024.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/114.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/114.png index bdffc4d0..aeb93e97 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/114.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/120.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/120.png index 543b15a5..c508f3c8 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/120.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/128.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/128.png index f75c5692..1cd9e428 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/128.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/128.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/144.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/144.png index 351ebe93..db247bc9 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/144.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/152.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/152.png index 69e6668c..0f417359 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/152.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/16.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/16.png index 5cc79dd5..c46e46e8 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/16.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/16.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/167.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/167.png index 3756e34c..8ab2d5ee 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/167.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/172.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/172.png index f08998f2..c15cc948 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/172.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/172.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/180.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/180.png index 5a093199..1c03ad85 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/180.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/196.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/196.png index 00b41ce4..f5f5a80f 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/196.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/196.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/20.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/20.png index 60325741..51160b2a 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/20.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/216.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/216.png index 869b1e28..8c9fe971 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/216.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/216.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/256.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/256.png index 87c13abc..798ab761 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/256.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/256.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/29.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/29.png index 6d2e0fda..463d1513 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/29.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/32.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/32.png index 2e77af96..4e758e37 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/32.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/32.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/40.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/40.png index 8aa2285b..9effd8dd 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/40.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/48.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/48.png index f04c07fe..1490a4d7 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/48.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/48.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/50.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/50.png index 08440bc7..62d77a5b 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/50.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/512.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/512.png index 69f5bf0e..02fb3ede 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/512.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/512.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/55.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/55.png index 114fe542..b557fd9b 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/55.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/55.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/57.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/57.png index 139572e1..4b505e95 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/57.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/58.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/58.png index e4c97b04..2bb7f47a 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/58.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/60.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/60.png index bb6ff8f8..e4d16340 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/60.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/64.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/64.png index 05636a19..381cd7cc 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/64.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/64.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/66.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/66.png index c7767ed1..76577ef2 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/66.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/66.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/72.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/72.png index 01cba409..ca86625e 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/72.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/76.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/76.png index 5125fca0..4c8718b1 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/76.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/80.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/80.png index 1a9e0b7b..3ab86e5f 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/80.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/87.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/87.png index ea9a252b..d8c1ed0d 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/87.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/88.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/88.png index 327c639e..7df1e584 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/88.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/88.png differ diff --git a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/92.png b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/92.png index b69c2fca..c7e9dec5 100644 Binary files a/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/92.png and b/Projects/App/Resources/Assets.xcassets/AppIcon.appiconset/92.png differ diff --git a/Projects/App/Resources/Assets.xcassets/Icon/AddImoji.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/AddImoji.imageset/Contents.json deleted file mode 100644 index e3379559..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/AddImoji.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "c.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Angry.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Angry.imageset/Contents.json deleted file mode 100644 index b01a6174..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Angry.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_angry.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/BookMark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/BookMark.imageset/Contents.json deleted file mode 100644 index 3654463d..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/BookMark.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Bookmark.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/BookMark_none.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/BookMark_none.imageset/Contents.json deleted file mode 100644 index 2fe716ef..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/BookMark_none.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "bookmark_none.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/BookMark_tabbar.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/BookMark_tabbar.imageset/Contents.json deleted file mode 100644 index 07d938d7..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/BookMark_tabbar.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "BookmarkTabbar.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Chat.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Chat.imageset/Contents.json deleted file mode 100644 index e5824db9..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Chat.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Chat.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/ClickedBookmark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/ClickedBookmark.imageset/Contents.json deleted file mode 100644 index d5575e64..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/ClickedBookmark.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ClickedBookmark.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Copy.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Copy.imageset/Contents.json deleted file mode 100644 index d23ca394..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Copy.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Copy.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Download.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Download.imageset/Contents.json deleted file mode 100644 index 831ebc97..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Download.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_downlaod.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/File.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/File.imageset/Contents.json deleted file mode 100644 index 6408fa6a..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/File.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "AppIcon.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Hide.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Hide.imageset/Contents.json deleted file mode 100644 index e0d69548..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Hide.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Hide.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Home.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Home.imageset/Contents.json deleted file mode 100644 index 5f69a357..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Home.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Home.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Home_none.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Home_none.imageset/Contents.json deleted file mode 100644 index b0bb2f9d..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Home_none.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "home_none.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Image.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Image.imageset/Contents.json deleted file mode 100644 index 946ba7dd..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Image.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Image.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/LoudSpeaker.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/LoudSpeaker.imageset/Contents.json deleted file mode 100644 index 83405cc9..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/LoudSpeaker.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "LoudSpeaker.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Ok.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Ok.imageset/Contents.json deleted file mode 100644 index b7c3d0fc..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Ok.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_okay.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Profile.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Profile.imageset/Contents.json deleted file mode 100644 index 3ad7797b..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Profile.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Profile.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Profile_none.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Profile_none.imageset/Contents.json deleted file mode 100644 index 24a312be..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Profile_none.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "profile_none.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Roundbutton.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Roundbutton.imageset/Contents.json deleted file mode 100644 index 8d071dae..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Roundbutton.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_round-detail.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Sad.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Sad.imageset/Contents.json deleted file mode 100644 index 21176713..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Sad.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_sad.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Send.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Send.imageset/Contents.json deleted file mode 100644 index 62a7f824..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Send.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Send.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Show.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Show.imageset/Contents.json deleted file mode 100644 index e3c0794e..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Show.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Show.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Speaker.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/Speaker.imageset/Contents.json deleted file mode 100644 index 960cbdd9..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/Speaker.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Group 217.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/XMark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/XMark.imageset/Contents.json deleted file mode 100644 index e5ac8095..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/XMark.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "XMark.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/funny.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/funny.imageset/Contents.json deleted file mode 100644 index fa7d95bc..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/funny.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_laugh.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/heart.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Icon/heart.imageset/Contents.json deleted file mode 100644 index 72787c87..00000000 --- a/Projects/App/Resources/Assets.xcassets/Icon/heart.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_love.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/AlimoIcon.imageset/AlimoIcon.svg b/Projects/App/Resources/Assets.xcassets/Image/AlimoIcon.imageset/AlimoIcon.svg new file mode 100644 index 00000000..99442027 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/AlimoIcon.imageset/AlimoIcon.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/AlimoIcon.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/AlimoIcon.imageset/Contents.json new file mode 100644 index 00000000..20f5d882 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/AlimoIcon.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "AlimoIcon.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/AlimoLogo.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/AlimoLogo.imageset/Contents.json new file mode 100644 index 00000000..4b2b2a36 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/AlimoLogo.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Logo.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/AlimoLogo.imageset/Logo.svg b/Projects/App/Resources/Assets.xcassets/Image/AlimoLogo.imageset/Logo.svg new file mode 100644 index 00000000..20416fbd --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/AlimoLogo.imageset/Logo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/DarkParent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/DarkParent.imageset/Contents.json deleted file mode 100644 index ead735d6..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/DarkParent.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "DarkParent.svg", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DarkStudent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/DarkStudent.imageset/Contents.json deleted file mode 100644 index f8244409..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/DarkStudent.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "DarkStudent.svg", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DisabledParent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/DisabledParent.imageset/Contents.json new file mode 100644 index 00000000..6f7d0fb5 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/DisabledParent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "enabled=false-1.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DisabledParent.imageset/enabled=false-1.svg b/Projects/App/Resources/Assets.xcassets/Image/DisabledParent.imageset/enabled=false-1.svg new file mode 100644 index 00000000..01d32c3e --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/DisabledParent.imageset/enabled=false-1.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/DisabledStudent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/DisabledStudent.imageset/Contents.json new file mode 100644 index 00000000..4e45f04f --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/DisabledStudent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "enabled=false.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DisabledStudent.imageset/enabled=false.svg b/Projects/App/Resources/Assets.xcassets/Image/DisabledStudent.imageset/enabled=false.svg new file mode 100644 index 00000000..9598c446 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/DisabledStudent.imageset/enabled=false.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/DisabledTeacher.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/DisabledTeacher.imageset/Contents.json new file mode 100644 index 00000000..6a01651b --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/DisabledTeacher.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "enabled=false-2.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DisabledTeacher.imageset/enabled=false-2.svg b/Projects/App/Resources/Assets.xcassets/Image/DisabledTeacher.imageset/enabled=false-2.svg new file mode 100644 index 00000000..07211eb8 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/DisabledTeacher.imageset/enabled=false-2.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/Dummy.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/Dummy.imageset/Contents.json deleted file mode 100644 index a813ab12..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/Dummy.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "Dummy.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/EnabledParent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/EnabledParent.imageset/Contents.json new file mode 100644 index 00000000..3acd2cd7 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/EnabledParent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "enabled=true-1.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/EnabledParent.imageset/enabled=true-1.svg b/Projects/App/Resources/Assets.xcassets/Image/EnabledParent.imageset/enabled=true-1.svg new file mode 100644 index 00000000..ec912a3c --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/EnabledParent.imageset/enabled=true-1.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/EnabledStudent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/EnabledStudent.imageset/Contents.json new file mode 100644 index 00000000..e251f0be --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/EnabledStudent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "enabled=true.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/EnabledStudent.imageset/enabled=true.svg b/Projects/App/Resources/Assets.xcassets/Image/EnabledStudent.imageset/enabled=true.svg new file mode 100644 index 00000000..a2d7f63c --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/EnabledStudent.imageset/enabled=true.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/EnabledTeacher.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/EnabledTeacher.imageset/Contents.json new file mode 100644 index 00000000..8155cccb --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/EnabledTeacher.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "enabled=true-2.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/EnabledTeacher.imageset/enabled=true-2.svg b/Projects/App/Resources/Assets.xcassets/Image/EnabledTeacher.imageset/enabled=true-2.svg new file mode 100644 index 00000000..8715b180 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Image/EnabledTeacher.imageset/enabled=true-2.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/App/Resources/Assets.xcassets/Image/LightParent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/LightParent.imageset/Contents.json deleted file mode 100644 index 8067ff87..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/LightParent.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "LightParent.svg", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/LightStudent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/LightStudent.imageset/Contents.json deleted file mode 100644 index 5b1b137d..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/LightStudent.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "LightStudent.svg", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/NoBookMark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/NoBookMark.imageset/Contents.json deleted file mode 100644 index a769fff3..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/NoBookMark.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "undraw_code_thinking_re_gka2(1) 1.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/NoNotice.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/NoNotice.imageset/Contents.json deleted file mode 100644 index 714899cd..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/NoNotice.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "undraw_online_re_x00h 1.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/ProfileImage.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/ProfileImage.imageset/Contents.json deleted file mode 100644 index b74d7352..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/ProfileImage.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "ProfileImage.svg", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Image/Screen.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Image/Screen.imageset/Contents.json deleted file mode 100644 index 31c21843..00000000 --- a/Projects/App/Resources/Assets.xcassets/Image/Screen.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Screen.svg", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/AddImoji.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/AddImoji.imageset/Contents.json new file mode 100644 index 00000000..95bceee1 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/AddImoji.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "c.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/AddImoji.imageset/c.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/AddImoji.imageset/c.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/AddImoji.imageset/c.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/AddImoji.imageset/c.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Angry.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Angry.imageset/Contents.json new file mode 100644 index 00000000..41464be6 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Angry.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_angry.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Angry.imageset/ic_angry.png b/Projects/App/Resources/Assets.xcassets/Old Icon/Angry.imageset/ic_angry.png similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Angry.imageset/ic_angry.png rename to Projects/App/Resources/Assets.xcassets/Old Icon/Angry.imageset/ic_angry.png diff --git a/Projects/App/Resources/Assets.xcassets/Icon/BookMark.imageset/Bookmark.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Bookmark.imageset/Bookmark.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/BookMark.imageset/Bookmark.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Bookmark.imageset/Bookmark.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Bookmark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Bookmark.imageset/Contents.json new file mode 100644 index 00000000..c84876b0 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Bookmark.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Bookmark.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkNone.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkNone.imageset/Contents.json new file mode 100644 index 00000000..a3c765d4 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkNone.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "bookmark_none.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/BookMark_none.imageset/bookmark_none.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkNone.imageset/bookmark_none.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/BookMark_none.imageset/bookmark_none.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkNone.imageset/bookmark_none.svg diff --git a/Projects/App/Resources/Assets.xcassets/Icon/BookMark_tabbar.imageset/BookmarkTabbar.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkTabbar.imageset/BookmarkTabbar.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/BookMark_tabbar.imageset/BookmarkTabbar.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkTabbar.imageset/BookmarkTabbar.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkTabbar.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkTabbar.imageset/Contents.json new file mode 100644 index 00000000..a154e136 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/BookmarkTabbar.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "BookmarkTabbar.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Chat.imageset/Chat.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Chat.imageset/Chat.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Chat.imageset/Chat.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Chat.imageset/Chat.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Chat.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Chat.imageset/Contents.json new file mode 100644 index 00000000..cb85785e --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Chat.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Chat.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/ClickedBookmark.imageset/ClickedBookmark.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/ClickedBookmark.imageset/ClickedBookmark.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/ClickedBookmark.imageset/ClickedBookmark.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/ClickedBookmark.imageset/ClickedBookmark.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/ClickedBookmark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/ClickedBookmark.imageset/Contents.json new file mode 100644 index 00000000..d0c4c9a6 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/ClickedBookmark.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ClickedBookmark.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Contents.json similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Contents.json rename to Projects/App/Resources/Assets.xcassets/Old Icon/Contents.json diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Copy.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Copy.imageset/Contents.json new file mode 100644 index 00000000..f594e9b3 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Copy.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Copy.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Copy.imageset/Copy.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Copy.imageset/Copy.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Copy.imageset/Copy.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Copy.imageset/Copy.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Download.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Download.imageset/Contents.json new file mode 100644 index 00000000..5ed2885b --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Download.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_downlaod.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Download.imageset/ic_downlaod.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Download.imageset/ic_downlaod.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Download.imageset/ic_downlaod.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Download.imageset/ic_downlaod.svg diff --git a/Projects/App/Resources/Assets.xcassets/Icon/File.imageset/AppIcon.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/File.imageset/AppIcon.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/File.imageset/AppIcon.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/File.imageset/AppIcon.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/File.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/File.imageset/Contents.json new file mode 100644 index 00000000..b4660797 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/File.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "AppIcon.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Funny.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Funny.imageset/Contents.json new file mode 100644 index 00000000..0d548fe9 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Funny.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_laugh.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/funny.imageset/ic_laugh.png b/Projects/App/Resources/Assets.xcassets/Old Icon/Funny.imageset/ic_laugh.png similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/funny.imageset/ic_laugh.png rename to Projects/App/Resources/Assets.xcassets/Old Icon/Funny.imageset/ic_laugh.png diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Heart.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Heart.imageset/Contents.json new file mode 100644 index 00000000..fa842298 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Heart.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_love.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/heart.imageset/ic_love.png b/Projects/App/Resources/Assets.xcassets/Old Icon/Heart.imageset/ic_love.png similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/heart.imageset/ic_love.png rename to Projects/App/Resources/Assets.xcassets/Old Icon/Heart.imageset/ic_love.png diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Hide.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Hide.imageset/Contents.json new file mode 100644 index 00000000..473399c5 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Hide.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Hide.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Hide.imageset/Hide.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Hide.imageset/Hide.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Hide.imageset/Hide.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Hide.imageset/Hide.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Home.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Home.imageset/Contents.json new file mode 100644 index 00000000..7e889a66 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Home.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Home.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Home.imageset/Home.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Home.imageset/Home.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Home.imageset/Home.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Home.imageset/Home.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/HomeNone.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/HomeNone.imageset/Contents.json new file mode 100644 index 00000000..a2f968b1 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/HomeNone.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "home_none.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Home_none.imageset/home_none.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/HomeNone.imageset/home_none.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Home_none.imageset/home_none.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/HomeNone.imageset/home_none.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Image.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Image.imageset/Contents.json new file mode 100644 index 00000000..a6215a8d --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Image.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Image.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Image.imageset/Image.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Image.imageset/Image.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Image.imageset/Image.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Image.imageset/Image.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/LoudSpeaker.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/LoudSpeaker.imageset/Contents.json new file mode 100644 index 00000000..b0401d1a --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/LoudSpeaker.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "LoudSpeaker.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/LoudSpeaker.imageset/LoudSpeaker.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/LoudSpeaker.imageset/LoudSpeaker.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/LoudSpeaker.imageset/LoudSpeaker.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/LoudSpeaker.imageset/LoudSpeaker.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Ok.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Ok.imageset/Contents.json new file mode 100644 index 00000000..ff4d98d9 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Ok.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_okay.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Ok.imageset/ic_okay.png b/Projects/App/Resources/Assets.xcassets/Old Icon/Ok.imageset/ic_okay.png similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Ok.imageset/ic_okay.png rename to Projects/App/Resources/Assets.xcassets/Old Icon/Ok.imageset/ic_okay.png diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Profile.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Profile.imageset/Contents.json new file mode 100644 index 00000000..ba0de987 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Profile.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Profile.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Profile.imageset/Profile.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Profile.imageset/Profile.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Profile.imageset/Profile.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Profile.imageset/Profile.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/ProfileNone.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/ProfileNone.imageset/Contents.json new file mode 100644 index 00000000..2541b32d --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/ProfileNone.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "profile_none.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Profile_none.imageset/profile_none.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/ProfileNone.imageset/profile_none.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Profile_none.imageset/profile_none.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/ProfileNone.imageset/profile_none.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Roundbutton.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Roundbutton.imageset/Contents.json new file mode 100644 index 00000000..d3943002 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Roundbutton.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_round-detail.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Roundbutton.imageset/ic_round-detail.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Roundbutton.imageset/ic_round-detail.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Roundbutton.imageset/ic_round-detail.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Roundbutton.imageset/ic_round-detail.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Sad.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Sad.imageset/Contents.json new file mode 100644 index 00000000..f24f8bac --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Sad.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ic_sad.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Sad.imageset/ic_sad.png b/Projects/App/Resources/Assets.xcassets/Old Icon/Sad.imageset/ic_sad.png similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Sad.imageset/ic_sad.png rename to Projects/App/Resources/Assets.xcassets/Old Icon/Sad.imageset/ic_sad.png diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Send.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Send.imageset/Contents.json new file mode 100644 index 00000000..184e06d6 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Send.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Send.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Send.imageset/Send.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Send.imageset/Send.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Send.imageset/Send.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Send.imageset/Send.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Show.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Show.imageset/Contents.json new file mode 100644 index 00000000..10cd3092 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Show.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Show.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Show.imageset/Show.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Show.imageset/Show.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Show.imageset/Show.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Show.imageset/Show.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/Speaker.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/Speaker.imageset/Contents.json new file mode 100644 index 00000000..b448fc7b --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/Speaker.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Group 217.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/Speaker.imageset/Group 217.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/Speaker.imageset/Group 217.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/Speaker.imageset/Group 217.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/Speaker.imageset/Group 217.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Icon/XMark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Icon/XMark.imageset/Contents.json new file mode 100644 index 00000000..1d4a31eb --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Icon/XMark.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "XMark.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Icon/XMark.imageset/XMark.svg b/Projects/App/Resources/Assets.xcassets/Old Icon/XMark.imageset/XMark.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Icon/XMark.imageset/XMark.svg rename to Projects/App/Resources/Assets.xcassets/Old Icon/XMark.imageset/XMark.svg diff --git a/Projects/App/Resources/Assets.xcassets/AccentColor.colorset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/Contents.json similarity index 51% rename from Projects/App/Resources/Assets.xcassets/AccentColor.colorset/Contents.json rename to Projects/App/Resources/Assets.xcassets/Old Image/Contents.json index eb878970..73c00596 100644 --- a/Projects/App/Resources/Assets.xcassets/AccentColor.colorset/Contents.json +++ b/Projects/App/Resources/Assets.xcassets/Old Image/Contents.json @@ -1,9 +1,4 @@ { - "colors" : [ - { - "idiom" : "universal" - } - ], "info" : { "author" : "xcode", "version" : 1 diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/DarkParent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/DarkParent.imageset/Contents.json new file mode 100644 index 00000000..91e84e7f --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/DarkParent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "DarkParent 1.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DarkParent.imageset/DarkParent.svg b/Projects/App/Resources/Assets.xcassets/Old Image/DarkParent.imageset/DarkParent 1.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/DarkParent.imageset/DarkParent.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/DarkParent.imageset/DarkParent 1.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/DarkStudent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/DarkStudent.imageset/Contents.json new file mode 100644 index 00000000..f9a3a57c --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/DarkStudent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "DarkStudent.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/DarkStudent.imageset/DarkStudent.svg b/Projects/App/Resources/Assets.xcassets/Old Image/DarkStudent.imageset/DarkStudent.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/DarkStudent.imageset/DarkStudent.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/DarkStudent.imageset/DarkStudent.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/Dummy.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/Dummy.imageset/Contents.json new file mode 100644 index 00000000..fce2ad7c --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/Dummy.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Dummy.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/Dummy.imageset/Dummy.png b/Projects/App/Resources/Assets.xcassets/Old Image/Dummy.imageset/Dummy.png similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/Dummy.imageset/Dummy.png rename to Projects/App/Resources/Assets.xcassets/Old Image/Dummy.imageset/Dummy.png diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/LightParent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/LightParent.imageset/Contents.json new file mode 100644 index 00000000..0c0fe64e --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/LightParent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "LightParent.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/LightParent.imageset/LightParent.svg b/Projects/App/Resources/Assets.xcassets/Old Image/LightParent.imageset/LightParent.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/LightParent.imageset/LightParent.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/LightParent.imageset/LightParent.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/LightStudent.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/LightStudent.imageset/Contents.json new file mode 100644 index 00000000..5bc797a9 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/LightStudent.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "LightStudent.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/LightStudent.imageset/LightStudent.svg b/Projects/App/Resources/Assets.xcassets/Old Image/LightStudent.imageset/LightStudent.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/LightStudent.imageset/LightStudent.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/LightStudent.imageset/LightStudent.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/NoBookMark.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/NoBookMark.imageset/Contents.json new file mode 100644 index 00000000..9e9f8aa8 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/NoBookMark.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "undraw_code_thinking_re_gka2(1) 1.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/NoBookMark.imageset/undraw_code_thinking_re_gka2(1) 1.svg b/Projects/App/Resources/Assets.xcassets/Old Image/NoBookMark.imageset/undraw_code_thinking_re_gka2(1) 1.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/NoBookMark.imageset/undraw_code_thinking_re_gka2(1) 1.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/NoBookMark.imageset/undraw_code_thinking_re_gka2(1) 1.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/NoNotice.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/NoNotice.imageset/Contents.json new file mode 100644 index 00000000..a5ba8667 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/NoNotice.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "undraw_online_re_x00h 1.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/NoNotice.imageset/undraw_online_re_x00h 1.svg b/Projects/App/Resources/Assets.xcassets/Old Image/NoNotice.imageset/undraw_online_re_x00h 1.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/NoNotice.imageset/undraw_online_re_x00h 1.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/NoNotice.imageset/undraw_online_re_x00h 1.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/ProfileImage.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/ProfileImage.imageset/Contents.json new file mode 100644 index 00000000..1543ec9e --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/ProfileImage.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ProfileImage.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/ProfileImage.imageset/ProfileImage.svg b/Projects/App/Resources/Assets.xcassets/Old Image/ProfileImage.imageset/ProfileImage.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/ProfileImage.imageset/ProfileImage.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/ProfileImage.imageset/ProfileImage.svg diff --git a/Projects/App/Resources/Assets.xcassets/Old Image/Screen.imageset/Contents.json b/Projects/App/Resources/Assets.xcassets/Old Image/Screen.imageset/Contents.json new file mode 100644 index 00000000..84a97c91 --- /dev/null +++ b/Projects/App/Resources/Assets.xcassets/Old Image/Screen.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "Screen.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/Projects/App/Resources/Assets.xcassets/Image/Screen.imageset/Screen.svg b/Projects/App/Resources/Assets.xcassets/Old Image/Screen.imageset/Screen.svg similarity index 100% rename from Projects/App/Resources/Assets.xcassets/Image/Screen.imageset/Screen.svg rename to Projects/App/Resources/Assets.xcassets/Old Image/Screen.imageset/Screen.svg diff --git a/Projects/App/Sources/Application/AlimoApp.swift b/Projects/App/Sources/Application/AlimoApp.swift index 8a2deada..7f1bbddc 100644 --- a/Projects/App/Sources/Application/AlimoApp.swift +++ b/Projects/App/Sources/Application/AlimoApp.swift @@ -1,4 +1,6 @@ import SwiftUI +import ADS +import Foundation @main struct AlimoApp: App { @@ -12,6 +14,7 @@ struct AlimoApp: App { .environmentObject(DialogManager()) .environmentObject(DownloadManager()) .environmentObject(AppState()) + .environmentObject(ColorProvider(isDarkTheme: UserDefaults.standard.bool(forKey: "isDarkTheme"))) } } } @@ -21,6 +24,7 @@ private struct ContentView: View { @EnvironmentObject var tokenManager: TokenManager @EnvironmentObject var dm: DialogManager + @EnvironmentObject private var colorProvider: ColorProvider @State var opacity = 1.0 var body: some View { @@ -49,6 +53,15 @@ private struct ContentView: View { opacity = 0 } } + handleRefreshControl(isDarkTheme: colorProvider.isDarkTheme) } + .onChange(of: colorProvider.isDarkTheme) { + handleRefreshControl(isDarkTheme: $0) + } + } + + func handleRefreshControl(isDarkTheme: Bool) { + let tintColor = isDarkTheme ? AlimoColor.Color.primary60.darkColor : .black + UIRefreshControl.appearance().tintColor = UIColor(tintColor) } } diff --git a/Projects/App/Sources/Application/Foundation/AppState.swift b/Projects/App/Sources/Application/Foundation/AppState.swift index 715c61b3..769128bc 100644 --- a/Projects/App/Sources/Application/Foundation/AppState.swift +++ b/Projects/App/Sources/Application/Foundation/AppState.swift @@ -12,13 +12,18 @@ final class AppState: ObservableObject { } } } + @Published var refreshFailure = false @MainActor func fetchMember() { Task { - member = try await MemberService.live.getMemberInfo() - guard let member else { return } - isAlarmOn = !member.isOffAlarm + do { + member = try await MemberService.live.getMemberInfo() + guard let member else { return } + isAlarmOn = !member.isOffAlarm + } catch AuthError.refreshFailure { + refreshFailure = true + } catch {} } } diff --git a/Projects/App/Sources/Data/Emoji/Model/Domain/Emoji.swift b/Projects/App/Sources/Data/Emoji/Model/Domain/Emoji.swift index f7f12e4e..d64d3b80 100644 --- a/Projects/App/Sources/Data/Emoji/Model/Domain/Emoji.swift +++ b/Projects/App/Sources/Data/Emoji/Model/Domain/Emoji.swift @@ -5,6 +5,7 @@ // Created by dgsw8th71 on 2/27/24. // Copyright © 2024 b8nd. All rights reserved. // +import ADS struct Emoji: Hashable { var emojiType: EmojiType? diff --git a/Projects/App/Sources/Data/Emoji/Model/Domain/EmojiType.swift b/Projects/App/Sources/Data/Emoji/Model/Domain/EmojiType.swift index 7d492833..ba5861b5 100644 --- a/Projects/App/Sources/Data/Emoji/Model/Domain/EmojiType.swift +++ b/Projects/App/Sources/Data/Emoji/Model/Domain/EmojiType.swift @@ -1,36 +1,30 @@ +//import Foundation +//import SwiftUI +////APP // -// EmojiType.swift -// App -// -// Created by dgsw8th71 on 2/27/24. -// Copyright © 2024 b8nd. All rights reserved. -// - -import Foundation - -enum EmojiType: String, CaseIterable { - case okay = "OKAY" - case love = "LOVE" - case laugh = "LAUGH" - case sad = "SAD" - case angry = "ANGRY" - - static func fromString(_ str: String?) -> EmojiType? { - for emojiType in EmojiType.allCases { - if emojiType.rawValue == str { - return emojiType - } - } - return nil - } - - var image: String { - switch self { - case .okay: "Ok" - case .love: "heart" - case .laugh: "funny" - case .sad: "Sad" - case .angry: "Angry" - } - } -} +//enum EmojiType: String, CaseIterable { +// case okay = "OKAY" +// case love = "LOVE" +// case laugh = "LAUGH" +// case sad = "SAD" +// case angry = "ANGRY" +// +// static func fromString(_ str: String?) -> EmojiType? { +// for emojiType in EmojiType.allCases { +// if emojiType.rawValue == str { +// return emojiType +// } +// } +// return nil +// } +// +// var image: Image { +// switch self { +// case .okay: Image(.ok) +// case .love: Image(.heart) +// case .laugh: Image(.funny) +// case .sad: Image(.sad) +// case .angry: Image(.angry) +// } +// } +//} diff --git a/Projects/App/Sources/Data/Emoji/Model/Response/EmojiResponse.swift b/Projects/App/Sources/Data/Emoji/Model/Response/EmojiResponse.swift index 83b7c87a..39dd3fcb 100644 --- a/Projects/App/Sources/Data/Emoji/Model/Response/EmojiResponse.swift +++ b/Projects/App/Sources/Data/Emoji/Model/Response/EmojiResponse.swift @@ -6,6 +6,8 @@ // Copyright © 2024 b8nd. All rights reserved. // +import ADS + struct EmojiResponse: Decodable { let emojiName: String let count: Int diff --git a/Projects/App/Sources/Data/Foundation/AuthError.swift b/Projects/App/Sources/Data/Foundation/AuthError.swift new file mode 100644 index 00000000..c26b0a9c --- /dev/null +++ b/Projects/App/Sources/Data/Foundation/AuthError.swift @@ -0,0 +1,3 @@ +enum AuthError: Error { + case refreshFailure +} diff --git a/Projects/App/Sources/Data/Foundation/Interceptor/DefaultInterceptor.swift b/Projects/App/Sources/Data/Foundation/Interceptor/DefaultInterceptor.swift index cbfdd7e3..8a5ffc6e 100644 --- a/Projects/App/Sources/Data/Foundation/Interceptor/DefaultInterceptor.swift +++ b/Projects/App/Sources/Data/Foundation/Interceptor/DefaultInterceptor.swift @@ -1,11 +1,3 @@ -// -// DefaultInterceptor.swift -// App -// -// Created by dgsw8th71 on 2/9/24. -// Copyright © 2024 b8nd. All rights reserved. -// - import Alamofire import Foundation @@ -48,8 +40,7 @@ class DefaultInterceptor: RequestInterceptor { authCache.saveToken(response.data.accessToken, to: .accessToken) completion(.retry) } catch { - print("-- lost session --") - completion(.doNotRetryWithError(error)) + completion(.doNotRetryWithError(AuthError.refreshFailure)) } } } diff --git a/Projects/App/Sources/Data/Notification/Model/Domain/Notification.swift b/Projects/App/Sources/Data/Notification/Model/Domain/Notification.swift index 7a002d17..0ede41d8 100644 --- a/Projects/App/Sources/Data/Notification/Model/Domain/Notification.swift +++ b/Projects/App/Sources/Data/Notification/Model/Domain/Notification.swift @@ -7,6 +7,7 @@ // import Foundation +import ADS struct Notification: Hashable { var uuidString = UUID().uuidString diff --git a/Projects/App/Sources/Data/Notification/Model/Domain/NotificationRead.swift b/Projects/App/Sources/Data/Notification/Model/Domain/NotificationRead.swift index 011a22a2..e91afc74 100644 --- a/Projects/App/Sources/Data/Notification/Model/Domain/NotificationRead.swift +++ b/Projects/App/Sources/Data/Notification/Model/Domain/NotificationRead.swift @@ -7,6 +7,7 @@ // import Foundation +import ADS struct NotificationRead: Hashable { var notificationId: Int diff --git a/Projects/App/Sources/Data/Notification/Model/Response/NotificationLoadResponse.swift b/Projects/App/Sources/Data/Notification/Model/Response/NotificationLoadResponse.swift index 3f9067c3..9acdb643 100644 --- a/Projects/App/Sources/Data/Notification/Model/Response/NotificationLoadResponse.swift +++ b/Projects/App/Sources/Data/Notification/Model/Response/NotificationLoadResponse.swift @@ -7,6 +7,7 @@ // import Foundation +import ADS struct NotificationLoadResponse: Decodable { let notificationId: Int diff --git a/Projects/App/Sources/Data/Notification/Model/Response/NotificationReadResponse.swift b/Projects/App/Sources/Data/Notification/Model/Response/NotificationReadResponse.swift index d300511a..4b19c326 100644 --- a/Projects/App/Sources/Data/Notification/Model/Response/NotificationReadResponse.swift +++ b/Projects/App/Sources/Data/Notification/Model/Response/NotificationReadResponse.swift @@ -7,6 +7,7 @@ // import Foundation +import ADS struct NotificationReadResponse: Decodable { let notificationId: Int diff --git a/Projects/App/Sources/UI/Component/Menu/AlimoEmojMenu.swift b/Projects/App/Sources/UI/Component/Menu/AlimoEmojMenu.swift index 0db9dc05..22a7bf70 100644 --- a/Projects/App/Sources/UI/Component/Menu/AlimoEmojMenu.swift +++ b/Projects/App/Sources/UI/Component/Menu/AlimoEmojMenu.swift @@ -7,6 +7,7 @@ // import SwiftUI +import ADS struct AlimoEmojiMenu: View where Content: View { @@ -48,7 +49,7 @@ struct AlimoEmojiMenu: View where Content: View { } .padding() .background(Color.white) - .cornerRadius(8) + .cornerRadius(8, corners: .allCorners) .onTapGesture { withAnimation { showMenu = false @@ -60,7 +61,7 @@ struct AlimoEmojiMenu: View where Content: View { showMenu = false } } label: { - Image("XMark") + Image(.xMark) .resizable() .renderingMode(.template) .frame(width: 32, height: 32) @@ -98,12 +99,12 @@ struct Menus: View { showMenu = false } } label: { - Image(emoji.image) + emoji.image .resizable() .frame(width: 28, height: 28) } .background(backgroundColor) - .cornerRadius(4) + .cornerRadius(4, corners: .allCorners) } } } diff --git a/Projects/App/Sources/UI/Component/Shimmer/View+shimmer.swift b/Projects/App/Sources/UI/Component/Shimmer/View+shimmer.swift deleted file mode 100644 index d617c530..00000000 --- a/Projects/App/Sources/UI/Component/Shimmer/View+shimmer.swift +++ /dev/null @@ -1,13 +0,0 @@ -import SwiftUI - -public extension View { - - @ViewBuilder - func shimmer(_ condition: Bool = true) -> some View { - if condition { - AlimoShimmer { self } - } else { - self - } - } -} diff --git a/Projects/App/Sources/UI/Component/TextField/AlimoTextField.swift b/Projects/App/Sources/UI/Component/TextField/AlimoTextField.swift index 03962a4e..7929a81f 100644 --- a/Projects/App/Sources/UI/Component/TextField/AlimoTextField.swift +++ b/Projects/App/Sources/UI/Component/TextField/AlimoTextField.swift @@ -91,7 +91,7 @@ struct AlimoTextFieldStyle: TextFieldStyle { switch type { case .none(let hasXMark): if hasXMark && !text.isEmpty { - Image(Asset.xMark) + Image(.xMark) .resizable() .renderingMode(.template) .frame(width: 32, height: 32) @@ -101,7 +101,7 @@ struct AlimoTextFieldStyle: TextFieldStyle { } } case .password: - Image(isHide ? Asset.hide : Asset.show) + Image(isHide ? .hide : .show) .resizable() .renderingMode(.template) .frame(width: 28, height: 28) diff --git a/Projects/App/Sources/UI/Component/Theme/RoundedCornerExt.swift b/Projects/App/Sources/UI/Component/Theme/RoundedCornerExt.swift deleted file mode 100644 index 10d54c76..00000000 --- a/Projects/App/Sources/UI/Component/Theme/RoundedCornerExt.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// RoundedCornerExt.swift -// App -// -// Created by dgsw8th61 on 1/8/24. -// Copyright © 2024 b8nd. All rights reserved. -// - - -import SwiftUI - -extension View { - func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View { - clipShape( RoundedCorner(radius: radius, corners: corners) ) - } -} diff --git a/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkView.swift b/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkView.swift index bfa53428..80ec9b56 100644 --- a/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkView.swift +++ b/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkView.swift @@ -8,10 +8,12 @@ import Foundation import SwiftUI +import ADS struct BookmarkView: View { @StateObject var vm: BookmarkViewModel + @EnvironmentObject var tm: TokenManager @State private var scrollViewOffset: CGFloat = 0 { didSet { @@ -24,57 +26,68 @@ struct BookmarkView: View { var hasPost: Bool = true var body: some View { - GeometryReader { geo in - ScrollView(showsIndicators: false) { - VStack(spacing: 0) { - AlimoLogoBar() - switch vm.flow { - case .fetching: - LazyVStack(spacing: 0) { - ForEach(0..<4, id: \.self) { _ in - NotificationCellShimmer() - } - } - .shimmer() - case .success: - LazyVStack(spacing: 0) { - ForEach(vm.notificationList, id: \.uuidString) { notification in - VStack(spacing: 0) { - NotificationCeil(notification: notification, onClickEmoji: { emoji in - Task { - await vm.patchEmoji(emoji: emoji, notificationId: notification.notificationId) - } - }, onClickBookmark: { - Task { - await vm.patchBookmark(notificationId: notification.notificationId) - } - }, vm: NotificationDetailViewModel(notificationId: notification.notificationId)) - Divider() - .foregroundStyle(Color.gray100) + ZStack{ + GeometryReader { geo in + ScrollView(showsIndicators: false) { + VStack(spacing: 0) { + AlimoLogoBar() + switch vm.flow { + case .fetching: + LazyVStack(spacing: 0) { + ForEach(0..<4, id: \.self) { _ in + NotificationCellShimmer() } - .onAppear { - guard let index = vm.notificationList.firstIndex(where: { $0.notificationId == notification.notificationId }) else { return } - - if index % pagingInterval == (pagingInterval - 1) && index / pagingInterval == (vm.notificationList.count - 1) / pagingInterval { - Task { - await vm.fetchNotifications(isNew: false) + } + .shimmer() + case .success: + LazyVStack(spacing: 0) { + ForEach(Array(vm.notificationList.enumerated()), id: \.element.uuidString) { index, notification in + VStack(spacing: 0) { + BookMarkCeil(notification: notification, onClickEmoji: {emoji in + Task{ + await vm.patchEmoji(emoji:emoji,notificationId:notification.notificationId) + } + }, onClickBookmark: { + Task{ + await vm.patchBookmark(notificationId:notification.notificationId) + } + }, vm: NotificationDetailViewModel(notificationId: notification.notificationId), homeVm: HomeViewModel(),bookMarkVm: BookmarkViewModel(), + callCount: index) + // NotificationCeil(notification: notification, onClickEmoji: { emoji in + // Task { + // await vm.patchEmoji(emoji: emoji, notificationId: notification.notificationId) + // } + // }, onClickBookmark: { + // Task { + // await vm.patchBookmark(notificationId: notification.notificationId) + // } + // }, vm: NotificationDetailViewModel(notificationId: notification.notificationId), homeVm: HomeViewModel()) + + } + .onAppear { + guard let index = vm.notificationList.firstIndex(where: { $0.notificationId == notification.notificationId }) else { return } + + if index % pagingInterval == (pagingInterval - 1) && index / pagingInterval == (vm.notificationList.count - 1) / pagingInterval { + Task { + await vm.fetchNotifications(isNew: false) + } } } } } + .padding(.bottom, 100) + case .failure: + Image(.noNotice) + .padding(.top, 115) + Text("북마크를 불러올 수 없어요") + .font(.subtitle) + .foregroundStyle(Color.gray500) + .padding(.top, 32) + } - .padding(.bottom, 100) - case .failure: - Image(AppAsset.Assets.noNotice.name) - .padding(.top, 115) - Text("북마크를 불러올 수 없어요") - .font(.subtitle) - .foregroundStyle(Color.gray500) - .padding(.top, 32) - } } - + .alimoBackground(AlimoColor.Background.normal) .background( GeometryReader { Color.clear.preference(key: ViewOffsetKey.self, @@ -87,7 +100,7 @@ struct BookmarkView: View { .overlay { if .success == vm.flow && vm.notificationList.isEmpty { VStack(spacing: 32) { - Image("NoBookMark") + Image(.noBookMark) .resizable() .frame(width: 117, height: 158) Text("아직 북마크가 없어요") @@ -109,5 +122,11 @@ struct BookmarkView: View { vm.flow = .fetching await vm.fetchNotifications(isNew: true) } + .onChange(of: vm.refreshFailure) { + if $0 { + tm.accessToken = "" + tm.refreshToken = "" + } + } } } diff --git a/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkViewModel.swift b/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkViewModel.swift index 06143907..b5e3098a 100644 --- a/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkViewModel.swift +++ b/Projects/App/Sources/UI/Feature/Main/Bookmark/BookmarkViewModel.swift @@ -7,6 +7,7 @@ // import Foundation +import ADS @MainActor class BookmarkViewModel: ObservableObject { @@ -26,15 +27,16 @@ class BookmarkViewModel: ObservableObject { case failure } @Published var flow: FetchFlow = .fetching + @Published var refreshFailure = false - func fetchNotifications(isNew: Bool) async { + func fetchNotifications(isNew: Bool, category: String? = nil) async { flow = .fetching do { let nextPage = isNew ? 1 : page + 1 print("HomeVM - fetching notifications... nextPage: \(nextPage)") let request = PageRequest(page: nextPage, size: pagingInterval) - let notifications = try await bookmarkService.getBookmarkByCategory(category: "null", pageRequest: request) + let notifications = try await bookmarkService.getBookmarkByCategory(category: category ?? "null", pageRequest: request) dump(notifications) if isNew { notificationList = notifications @@ -46,6 +48,8 @@ class BookmarkViewModel: ObservableObject { page = nextPage } flow = .success + } catch AuthError.refreshFailure { + refreshFailure = true } catch { notificationList = [] page = 1 @@ -54,6 +58,7 @@ class BookmarkViewModel: ObservableObject { } } + func patchBookmark(notificationId: Int) async { do { diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/BookMarkCeil.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/BookMarkCeil.swift new file mode 100644 index 00000000..e605d74e --- /dev/null +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/BookMarkCeil.swift @@ -0,0 +1,98 @@ +// +// BookMarkCeil.swift +// App +// +// Created by dgsw8th61 on 7/30/24. +// Copyright © 2024 b1nd. All rights reserved. +// + +import SwiftUI +import ADS + +struct BookMarkCeil: View { + var notification: Notification + var onClickEmoji: (EmojiType) -> Void + var onClickBookmark: () -> Void + @State var showDialog = false + @StateObject var vm: NotificationDetailViewModel + @StateObject var homeVm: HomeViewModel + @StateObject var bookMarkVm: BookmarkViewModel + @EnvironmentObject var downloadManager: DownloadManager + @State private var matchedCategories: [[String]] = [] + @State private var callCount: Int + + init(notification: Notification, + onClickEmoji: @escaping (EmojiType) -> Void, + onClickBookmark: @escaping () -> Void, + vm:NotificationDetailViewModel, + homeVm: HomeViewModel, + bookMarkVm: BookmarkViewModel, + callCount: Int + ) { + self.notification = notification + self.onClickEmoji = onClickEmoji + self.onClickBookmark = onClickBookmark + self._vm = StateObject(wrappedValue: vm) + self._homeVm = StateObject(wrappedValue: homeVm) + self._bookMarkVm = StateObject(wrappedValue: bookMarkVm) + self.callCount = callCount + } + var body: some View { + HStack(spacing: 0) { + let categoryToShow = callCount < matchedCategories.count ? matchedCategories[callCount] : [] + VStack(alignment: .leading, spacing: 0) { + NavigationLink { + NotificationDetailView(vm: NotificationDetailViewModel(notificationId: notification.notificationId), homeVm: HomeViewModel(), onClickBookmark: { + Task { + await vm.patchBookmark() + } + }, onClickEmoji: { emoji in + Task { + await homeVm.patchEmoji(emoji: emoji, notificationId: notification.notificationId) + } + }) + } label: { + HStack(alignment: .top) { + AlimoBookMark(isSelected: notification.isBookMarked, + bookmarkAction: {onClickBookmark()}, + title: notification.title, + content: notification.content, + date: formattedDate(notification.createdAt), + category: categoryToShow) + } + } + } + } + .padding(.leading, 12) + .padding(.top, 20) + .padding(.trailing, 16) + .padding(.bottom, 12) + .task { + await vm.fetchNotification() + await homeVm.fetchCategoryList() + await fetchCategories() + } + } + private func fetchCategories() async { + + for category in homeVm.category { + await bookMarkVm.fetchNotifications(isNew: true, category: category) + + for notification in bookMarkVm.notificationList { + if self.notification.notificationId == notification.notificationId { + let categoryArray = [category] + if !matchedCategories.contains(where: { $0.first == category }) { + matchedCategories.append(categoryArray) + } + } + } + } + } + + private func formattedDate(_ date: Date) -> String { + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" // 원하는 형식으로 설정 + return dateFormatter.string(from: date) + } + +} diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/EmojiContainer.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/EmojiContainer.swift index 4a722dac..42739803 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/Component/EmojiContainer.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/EmojiContainer.swift @@ -1,11 +1,4 @@ -// -// Emoji.swift -// App -// -// Created by dgsw8th61 on 1/7/24. -// Copyright © 2024 b8nd. All rights reserved. -// - +import ADS import SwiftUI struct EmojiContainer: View { @@ -19,7 +12,7 @@ struct EmojiContainer: View { Rectangle() .foregroundColor(.gray100) .frame(width: 300, height: 35) - .cornerRadius(5) + .cornerRadius(5, corners: .allCorners) HStack { ForEach(emojies, id: \.self) { emoji in @@ -35,13 +28,13 @@ struct EmojiContainer: View { } } - func emojiImage(image: String, num: Int, isSelected: Bool) -> some View { + func emojiImage(image: Image, num: Int, isSelected: Bool) -> some View { HStack { - Image(image) + image .resizable() .aspectRatio(contentMode: .fill) .frame(width: 20, height: 20) - .cornerRadius(5) + .cornerRadius(5, corners: .allCorners) .padding(2) .opacity(isSelected ? 1.0 : 0.5) diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/FileCeil.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/FileCeil.swift index 9a62606b..89610394 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/Component/FileCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/FileCeil.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import ADS struct FileCeil: View { @@ -41,7 +42,7 @@ struct FileCeil: View { let fileSize = generateTextBasedOnFileSize(fileSizeInBytes: Double(file.fileSize)) HStack(spacing: 0) { - Image("File") + Image(.file) .resizable() .frame(width: 28, height: 28) VStack(alignment: .leading, spacing: 0) { @@ -60,14 +61,14 @@ struct FileCeil: View { Button { onClickDownload() } label: { - Image("Download") + Image(.download) .resizable() .frame(width: 24, height: 24) } } .padding(12) .background(Color.gray100) - .cornerRadius(8) + .cornerRadius(8, corners: .allCorners) } func generateTextBasedOnFileSize(fileSizeInBytes: Double) -> (Double, FileVolume) { diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/IconCeil.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/IconCeil.swift index 90e27ee1..45dc748c 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/Component/IconCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/IconCeil.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import ADS struct IconCeil: View { @@ -24,11 +25,11 @@ struct IconCeil: View { onClickEmoji($0) } content: { if let emoji = emoji { - Image(emoji.image) + emoji.image .resizable() .frame(width: 28, height: 28) } else { - Image("AddImoji") + Image(.addImoji) .resizable() .frame(width: 28, height: 28) } @@ -41,12 +42,12 @@ struct IconCeil: View { onClickBookmark() } label: { if isBookmarked { - Image(AppAsset.Assets.clickedBookmark.name) + Image(.clickedBookmark) .resizable() .aspectRatio(contentMode: .fill) .frame(width: 28, height: 28) } else { - Image(AppAsset.Assets.bookmark.name) + Image(.bookmark) .resizable() .renderingMode(.template) .foregroundStyle(Color.gray500) diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/ImageCeil.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/ImageCeil.swift index a9ab7bbb..ec09c1c3 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/Component/ImageCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/ImageCeil.swift @@ -7,6 +7,7 @@ // import SwiftUI +import ADS struct ImageCeil: View { @@ -20,7 +21,7 @@ struct ImageCeil: View { PreviewImageView( imageUrls: images.map { $0.fileUrl }, name: name, Info: info,onClickDownload:onClickDownload) } label: { HStack(spacing: 0) { - Image("Image") + Image(.image) .resizable() .frame(width: 28, height: 28) VStack(alignment: .leading, spacing: 0) { @@ -36,14 +37,14 @@ struct ImageCeil: View { Button { onClickDownload() } label: { - Image("Download") + Image(.download) .resizable() .frame(width: 24, height: 24) } } .padding(12) .background(Color.gray100) - .cornerRadius(8) + .cornerRadius(8, corners: .allCorners) } } } diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/Notice.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/Notice.swift index 9aeb8d37..18a7734c 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/Component/Notice.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/Notice.swift @@ -8,24 +8,35 @@ import Foundation import SwiftUI - +import ADS struct Notice: View { + @StateObject var vm: NotificationDetailViewModel + @StateObject var homeVm: HomeViewModel var notificationspeaketitle: Text var memberID: Text var notificationId: Int var body : some View { NavigationLink { - NotificationDetailView(vm: NotificationDetailViewModel(notificationId: notificationId)) + NotificationDetailView(vm: NotificationDetailViewModel(notificationId: notificationId), homeVm: HomeViewModel(), onClickBookmark: { + Task { + await homeVm.patchBookmark(notificationId: vm.notification?.notificationId ?? 0) + await vm.fetchNotification() + } + }, onClickEmoji: { emoji in + Task { + await homeVm.patchEmoji(emoji: emoji, notificationId: notificationId) + } + }) } label: { ZStack { Rectangle() .foregroundColor(.main100) .frame(maxWidth: .infinity, minHeight: 36) - .cornerRadius(5) + .cornerRadius(5, corners: .allCorners) HStack { - Image(Asset.loudSpeaker) + Image(.loudSpeaker) .renderingMode(.template) .foregroundStyle(Color.main300) diff --git a/Projects/App/Sources/UI/Feature/Main/Home/Component/NotificationCeil.swift b/Projects/App/Sources/UI/Feature/Main/Home/Component/NotificationCeil.swift index a642f4f8..113cbc06 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/Component/NotificationCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/Component/NotificationCeil.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import ADS struct NotificationCeil: View { enum Dialog { @@ -21,16 +22,20 @@ struct NotificationCeil: View { @State var showDialog = false @State var dialog = Dialog.file @StateObject var vm: NotificationDetailViewModel + @StateObject var homeVm: HomeViewModel @EnvironmentObject var downloadManager: DownloadManager init(notification: Notification, onClickEmoji: @escaping (EmojiType) -> Void, onClickBookmark: @escaping () -> Void, - vm:NotificationDetailViewModel) { + vm:NotificationDetailViewModel, + homeVm: HomeViewModel + ) { self.notification = notification self.onClickEmoji = onClickEmoji self.onClickBookmark = onClickBookmark self._vm = StateObject(wrappedValue: vm) + self._homeVm = StateObject(wrappedValue: homeVm) } @ViewBuilder @@ -94,43 +99,72 @@ struct NotificationCeil: View { var body: some View { HStack(spacing: 0) { - avatar VStack(alignment: .leading, spacing: 0) { NavigationLink { - NotificationDetailView(vm: NotificationDetailViewModel(notificationId: notification.notificationId)) + NotificationDetailView(vm: NotificationDetailViewModel(notificationId: notification.notificationId), homeVm: HomeViewModel(), onClickBookmark: { + Task { + // await vm.patchBookmark(notificationId: vm.notification?.notificationId) + await vm.patchBookmark() + } + }, onClickEmoji: { emoji in + Task { + await homeVm.patchEmoji(emoji: emoji, notificationId: notification.notificationId) + } + }) } label: { - VStack(alignment: .leading, spacing: 0) { - profile - content - .padding(.top, 12) - VStack(spacing: 8) { - if !(vm.notification?.files.isEmpty ?? true) { - downloads - } - if let images = vm.notification?.images { - VStack(spacing: 8) { - if !images.isEmpty { - ImageCeil(images: vm.notification?.images ?? [], info: (vm.notification?.createdAt.ymdText)!, name: vm.notification?.name ?? "") { - // TODO: Download images - Task { - await vm.downloadImages(images: vm.notification?.images ?? []) { images in - images.forEach { - downloadManager.saveImageToPhotos(image: $0) - } + HStack(alignment: .top) { + AlimoNotification( + notification.title, + user: notification.name, + content: notification.content, + isSelected: notification.isBookMarked, + date: notification.createdAt, + addEmojiAction: {emoji in + onClickEmoji(emoji) + }, + bookmarkAction: { + onClickBookmark() + }, + files: { + var fileInfoArray: [FileInfo] = [] + + if let files = vm.notification?.files, !files.isEmpty { + fileInfoArray.append(contentsOf: files.map { file in + FileInfo(title: file.fileName, type: .image(byte: file.fileSize)) {} + }) + } + + if let images = vm.notification?.images, !images.isEmpty { + fileInfoArray.append(FileInfo(title: images[0].fileName, type: .file(count: vm.notification?.images.count ?? 0)) { + Task { + await vm.downloadImages(images: vm.notification?.images ?? []) { images in + images.forEach { + downloadManager.saveImageToPhotos(image: $0) } - dialog = .image - showDialog = true } } - } + dialog = .image + showDialog = true + }) } - } - } + + return fileInfoArray + }(), + fileDestination: { + PreviewImageView( imageUrls: (vm.notification?.images ?? []).compactMap { ($0 as? ImageOrFile)?.fileUrl }, + name: vm.notification?.name ?? "", + Info: (vm.notification?.createdAt.ymdText)!, + onClickDownload:{}) + }, + hasEmoji: true, + emoji: notification.emoji ?? nil + ) } + .truncationMode(.tail) + .fixedSize(horizontal: false, vertical: true) + .multilineTextAlignment(.leading) } - info } - .padding(.leading, 8) } .padding(.leading, 12) .padding(.top, 20) @@ -149,6 +183,64 @@ struct NotificationCeil: View { dismissButton: .default(Text("닫기"))) } } + + + // HStack(spacing: 0) { + // avatar + // VStack(alignment: .leading, spacing: 0) { + // NavigationLink { + // NotificationDetailView(vm: NotificationDetailViewModel(notificationId: notification.notificationId)) + // } label: { + // VStack(alignment: .leading, spacing: 0) { + // profile + // content + // .padding(.top, 12) + // VStack(spacing: 8) { + // if !(vm.notification?.files.isEmpty ?? true) { + // downloads + // } + // if let images = vm.notification?.images { + // VStack(spacing: 8) { + // if !images.isEmpty { + // ImageCeil(images: vm.notification?.images ?? [], info: (vm.notification?.createdAt.ymdText)!, name: vm.notification?.name ?? "") { + // // TODO: Download images + // Task { + // await vm.downloadImages(images: vm.notification?.images ?? []) { images in + // images.forEach { + // downloadManager.saveImageToPhotos(image: $0) + // } + // } + // dialog = .image + // showDialog = true + // } + // } + // } + // } + // } + // } + // } + // } + // info + // } + // .padding(.leading, 8) + // } + // .padding(.leading, 12) + // .padding(.top, 20) + // .padding(.trailing, 16) + // .padding(.bottom, 12) + // .task { + // await vm.fetchNotification() + // } + // .alert(isPresented: $showDialog) { + // switch dialog { + // case .file: + // Alert(title: Text("파일 다운로드 성공"), + // dismissButton: .default(Text("닫기"))) + // case .image: + // Alert(title: Text("이미지 다운로드 성공"), + // dismissButton: .default(Text("닫기"))) + // } + // } } + } - diff --git a/Projects/App/Sources/UI/Feature/Main/Home/HomeView.swift b/Projects/App/Sources/UI/Feature/Main/Home/HomeView.swift index b12c0ebe..49b81664 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/HomeView.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/HomeView.swift @@ -8,10 +8,12 @@ import Foundation import SwiftUI +import ADS struct HomeView: View { @ObservedObject var vm: HomeViewModel + @EnvironmentObject var tm: TokenManager @State var reader: ScrollViewProxy? @State private var scrollViewOffset: CGFloat = 0 { @@ -47,69 +49,73 @@ struct HomeView: View { .padding(.horizontal, 16) .padding(.vertical, 12) .frame(maxWidth: .infinity) - .background(Color.white) + .alimoBackground(AlimoColor.Background.normal) .clipShape(RoundedCorner(radius: 8, corners: [.bottomLeft, .bottomRight])) .showShadow(show: isSelectorReached) } var body: some View { - ScrollViewReader { reader in - ScrollView(showsIndicators: false) { - VStack(spacing: 0) { - AlimoLogoBar() - .id("top") - if let loudSpeaker = vm.loudSpeaker { - Notice( notificationspeaketitle: Text(loudSpeaker.title), memberID: Text(loudSpeaker.name), notificationId: loudSpeaker.notificationId) - } - - LazyVStack(spacing: 0, pinnedViews: [.sectionHeaders]) { - Section(header: categorySelector) { - switch vm.flow { - case .fetching: - LazyVStack(spacing: 0) { - ForEach(0..<4, id: \.self) { _ in - NotificationCellShimmer() + ZStack{ + ScrollViewReader { reader in + ScrollView(showsIndicators: false) { + VStack(spacing: 0) { + AlimoLogoBar() + .id("top") + if let loudSpeaker = vm.loudSpeaker { + Notice(vm: NotificationDetailViewModel(notificationId: loudSpeaker.notificationId),homeVm: HomeViewModel(), notificationspeaketitle: Text(loudSpeaker.title), memberID: Text(loudSpeaker.name), notificationId: loudSpeaker.notificationId) + } + + LazyVStack(spacing: 0, pinnedViews: [.sectionHeaders]) { + Section(header: categorySelector) { + switch vm.flow { + case .fetching: + LazyVStack(spacing: 0) { + ForEach(0..<4, id: \.self) { _ in + NotificationCellShimmer() + } } - } - case .success: - LazyVStack(spacing: 0) { - ForEach(vm.notificationList, id: \.uuidString) { notification in - VStack(spacing: 0) { - NotificationCeil(notification: notification, onClickEmoji: { emoji in - Task { - await vm.patchEmoji(emoji: emoji, notificationId: notification.notificationId) - } - }, onClickBookmark: { - Task { - await vm.patchBookmark(notificationId: notification.notificationId) + case .success: + LazyVStack(spacing: 0) { + ForEach(vm.notificationList, id: \.uuidString) { notification in + VStack(spacing: 0) { + NotificationCeil(notification: notification, onClickEmoji: { emoji in + Task { + await vm.patchEmoji(emoji: emoji, notificationId: notification.notificationId) + } + }, onClickBookmark: { + Task { + await vm.patchBookmark(notificationId: notification.notificationId) + } + }, vm: NotificationDetailViewModel(notificationId: notification.notificationId), homeVm: HomeViewModel()) + + Divider() + .foregroundStyle(Color.gray100) + } + .task { + guard let index = vm.notificationList.firstIndex(where: { $0.notificationId == notification.notificationId }) else { return } + + if index % pagingInterval == (pagingInterval - 1) && index / pagingInterval == (vm.notificationList.count - 1) / pagingInterval { + await vm.fetchNotifications(isNew: false) } - }, vm: NotificationDetailViewModel(notificationId: notification.notificationId)) - - Divider() - .foregroundStyle(Color.gray100) - } - .task { - guard let index = vm.notificationList.firstIndex(where: { $0.notificationId == notification.notificationId }) else { return } - - if index % pagingInterval == (pagingInterval - 1) && index / pagingInterval == (vm.notificationList.count - 1) / pagingInterval { - await vm.fetchNotifications(isNew: false) } } } + .lineLimit(3) + .padding(.bottom, 100) + case .failure: + Image(.noNotice) + .padding(.top, 115) + Text("공지를 불러올 수 없어요") + .font(.subtitle) + .foregroundStyle(Color.gray500) + .padding(.top, 32) } - .padding(.bottom, 100) - case .failure: - Image(AppAsset.Assets.noNotice.name) - .padding(.top, 115) - Text("공지를 불러올 수 없어요") - .font(.subtitle) - .foregroundStyle(Color.gray500) - .padding(.top, 32) } } + .shimmer(vm.flow == .fetching) } - .shimmer(vm.flow == .fetching) } + .alimoBackground(AlimoColor.Background.normal) .background( GeometryReader { Color.clear.preference(key: ViewOffsetKey.self, @@ -132,9 +138,24 @@ struct HomeView: View { } .task { vm.flow = .fetching - await vm.fetchCategoryList() - await vm.fetchLoudSpeaker() - await vm.fetchNotifications(isNew: true) + + await withTaskGroup(of: Void.self) { group in + group.addTask { + await vm.fetchCategoryList() + } + group.addTask { + await vm.fetchLoudSpeaker() + } + group.addTask { + await vm.fetchNotifications(isNew: true) + } + } + } + } + .onChange(of: vm.refreshFailure) { + if $0 { + tm.accessToken = "" + tm.refreshToken = "" } } } diff --git a/Projects/App/Sources/UI/Feature/Main/Home/HomeViewModel.swift b/Projects/App/Sources/UI/Feature/Main/Home/HomeViewModel.swift index aab89e2e..0f1bef49 100644 --- a/Projects/App/Sources/UI/Feature/Main/Home/HomeViewModel.swift +++ b/Projects/App/Sources/UI/Feature/Main/Home/HomeViewModel.swift @@ -10,6 +10,7 @@ import Foundation import SwiftUI import AlamofireImage import Alamofire +import ADS @MainActor class HomeViewModel: ObservableObject { @@ -23,7 +24,7 @@ class HomeViewModel: ObservableObject { @Published var loudSpeaker: LoudSpeaker? = nil @Published var notificationList: [Notification] = [] @Published var page = 1 - + @Published var refreshFailure = false @Published var selectedIndex = -1 { didSet { Task { @@ -78,6 +79,8 @@ class HomeViewModel: ObservableObject { page = nextPage } flow = .success + } catch AuthError.refreshFailure { + refreshFailure = true } catch { notificationList = [] page = 1 diff --git a/Projects/App/Sources/UI/Feature/Main/MainView.swift b/Projects/App/Sources/UI/Feature/Main/MainView.swift index 5682efe2..c2bb6145 100644 --- a/Projects/App/Sources/UI/Feature/Main/MainView.swift +++ b/Projects/App/Sources/UI/Feature/Main/MainView.swift @@ -8,33 +8,37 @@ import Foundation import SwiftUI +import ADS struct MainView: View { - @State private var selectedTab = BottomNavigationType.home + @State private var selectedTab = BottomTabType.Home @StateObject private var profileVM = ProfileViewModel() @StateObject private var homeVM = HomeViewModel() @StateObject private var bookmarkVM = BookmarkViewModel() @EnvironmentObject private var appState: AppState + @EnvironmentObject private var tm: TokenManager var body: some View { NavigationStack { ZStack { switch selectedTab { - case .home: HomeView(vm: homeVM) - case .bookmark: BookmarkView(vm: bookmarkVM) - case .my: ProfileView(vm: profileVM) + case .Home: + HomeView(vm: homeVM) + case .Bookmark: + BookmarkView(vm: bookmarkVM) + case .Profile: + ProfileView(vm: profileVM) } + GeometryReader { reader in ZStack(alignment: .bottom) { - BottomNavigation(selectedTab: $selectedTab) - VStack { - Color.white - .frame(height: reader.safeAreaInsets.top, alignment: .top) - Spacer() - Color.white - .frame(height: reader.safeAreaInsets.bottom, alignment: .bottom) + AlimoBottomTabBar(selectedTab: selectedTab, onTap: { newTab in + selectedTab = newTab + }) { + EmptyView() } + .padding(.bottom, reader.safeAreaInsets.bottom) .ignoresSafeArea() } } @@ -44,5 +48,18 @@ struct MainView: View { endTextEditing() appState.fetchMember() } + .onChange(of: appState.refreshFailure) { newValue in + if newValue { + tm.accessToken = "" + tm.refreshToken = "" + appState.refreshFailure = false + } + } } } + +#Preview { + MainView() + .environmentObject(AppState()) + .environmentObject(TokenManager()) +} diff --git a/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationCeil.swift b/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationCeil.swift index e26c09c5..e1f55905 100644 --- a/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationCeil.swift @@ -27,7 +27,7 @@ struct BottomNavigationCeil: View { let textColor: Color = isSelected ? .main900 : .gray500 VStack { - Image(type.image) + type.image .renderingMode(.template) .resizable() .frame(width: 28, height: 28) diff --git a/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationType.swift b/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationType.swift index b6f65594..55ae86ec 100644 --- a/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationType.swift +++ b/Projects/App/Sources/UI/Feature/Main/Navigation/BottomNavigationType.swift @@ -1,12 +1,5 @@ -// -// BottomNavigationType.swift -// App -// -// Created by dgsw8th71 on 2/25/24. -// Copyright © 2024 b8nd. All rights reserved. -// - import Foundation +import SwiftUI enum BottomNavigationType: CaseIterable { case home @@ -21,11 +14,11 @@ enum BottomNavigationType: CaseIterable { } } - var image: String { + var image: Image { switch self { - case .home: "Home" - case .bookmark: "BookMark_tabbar" - case .my: "Profile" + case .home: Image(.home) + case .bookmark: Image(.bookmarkTabbar) + case .my: Image(.profile) } } } diff --git a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/CommentCeil.swift b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/CommentCeil.swift index 05f602c4..477400a6 100644 --- a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/CommentCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/CommentCeil.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import ADS struct CommentCeil: View { @@ -30,62 +31,65 @@ struct CommentCeil: View { var body: some View { VStack(spacing: 0) { - HStack(alignment: .top, spacing: 12) { - AlimoAsyncAvatar(comment.profileImage, type: .small) - - VStack(alignment: .leading, spacing: 0) { - HStack { - Text("\(comment.commentor)") - .font(.label) - .bold() - Spacer() - - if isMe { - Menu { - Button("삭제하기", role: .destructive) { - showDeleting = true - } - } label: { - Image("Roundbutton") - .resizable() - .foregroundStyle(Color.gray500) - .frame(width: 20, height: 20) - } - .alert("정말 댓글을 삭제 하시겠습니까?", isPresented: $showDeleting) { - Button("취소", role: .cancel) {} - Button("삭제", role: .destructive) { - deleteComment() - } - - } message: { - Text("댓글을 삭제 하겠습니까?") - } - } - } - Text(LocalizedStringKey(comment.content)) - .applyOpenURL() - .font(.label) - .foregroundStyle(Color.black) - .lineSpacing(4) - .padding(.top, 2) - HStack(spacing: 8) { - Text(comment.createdAt.ymdText) - .foregroundStyle(Color.gray500) - .font(.caption) - - Button { - onClickSubComment() - } label: { - Text("답글달기") - .font(.caption) - .foregroundColor(.gray500) - } - } - .padding(.top, 4) - } - Spacer() + AlimoComment(comment.commentor, type: .comment , date: comment.createdAt.ymdText, content: comment.content) { + onClickSubComment() } - .padding(.top, 8) +// HStack(alignment: .top, spacing: 12) { +// AlimoAsyncAvatar(comment.profileImage, type: .small) +// +// VStack(alignment: .leading, spacing: 0) { +// HStack { +// Text("\(comment.commentor)") +// .font(.label) +// .bold() +// Spacer() +// +// if isMe { +// Menu { +// Button("삭제하기", role: .destructive) { +// showDeleting = true +// } +// } label: { +// Image(.roundbutton) +// .resizable() +// .foregroundStyle(Color.gray500) +// .frame(width: 20, height: 20) +// } +// .alert("정말 댓글을 삭제 하시겠습니까?", isPresented: $showDeleting) { +// Button("취소", role: .cancel) {} +// Button("삭제", role: .destructive) { +// deleteComment() +// } +// +// } message: { +// Text("댓글을 삭제 하겠습니까?") +// } +// } +// } +// Text(LocalizedStringKey(comment.content)) +// .applyOpenURL() +// .font(.label) +// .foregroundStyle(Color.black) +// .lineSpacing(4) +// .padding(.top, 2) +// HStack(spacing: 8) { +// Text(comment.createdAt.ymdText) +// .foregroundStyle(Color.gray500) +// .font(.caption) +// +// Button { +// onClickSubComment() +// } label: { +// Text("답글달기") +// .font(.caption) +// .foregroundColor(.gray500) +// } +// } +// .padding(.top, 4) +// } +// Spacer() +// } +// .padding(.top, 8) } } } diff --git a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/SubCommentCeil.swift b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/SubCommentCeil.swift index ac612da6..694cc1d4 100644 --- a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/SubCommentCeil.swift +++ b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/Component/SubCommentCeil.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import ADS struct SubCommentCeil: View { @@ -28,53 +29,54 @@ struct SubCommentCeil: View { var body: some View { VStack(spacing: 0) { - HStack(alignment: .top, spacing: 12) { - AlimoAsyncAvatar(comment.profileImage, type: .small) - - VStack(alignment: .leading, spacing: 0) { - HStack { - Text("\(comment.commentor)") - .font(.label) - .bold() - Spacer() - if isMe { - Menu { - Button("삭제하기", role: .destructive) { - showDeleting = true - } - } label: { - Image("Roundbutton") - .resizable() - .foregroundStyle(Color.gray500) - .frame(width: 20, height: 20) - } - .alert("정말 댓글을 삭제 하시겠습니까?", isPresented: $showDeleting) { - Button("취소", role: .cancel) {} - Button("삭제", role: .destructive) { - deleteSubComment() - } - } message: { - Text("댓글을 삭제 하겠습니까?") - } - } - } - - Text(LocalizedStringKey(comment.content)) - .applyOpenURL() - .foregroundStyle(Color.black) - .font(.label) - .lineSpacing(4) - .padding(.top, 2) - HStack(spacing: 8) { - Text(comment.createdAt.ymdText) - .foregroundStyle(Color.gray500) - .font(.caption) - } - .padding(.top, 4) - } - Spacer() - } - .padding(.top, 8) + AlimoComment(comment.commentor, type: .subcomment , date: comment.createdAt.ymdText, content: comment.content) {} + // HStack(alignment: .top, spacing: 12) { +// AlimoAsyncAvatar(comment.profileImage, type: .small) +// +// VStack(alignment: .leading, spacing: 0) { +// HStack { +// Text("\(comment.commentor)") +// .font(.label) +// .bold() +// Spacer() +// if isMe { +// Menu { +// Button("삭제하기", role: .destructive) { +// showDeleting = true +// } +// } label: { +// Image(.roundbutton) +// .resizable() +// .foregroundStyle(Color.gray500) +// .frame(width: 20, height: 20) +// } +// .alert("정말 댓글을 삭제 하시겠습니까?", isPresented: $showDeleting) { +// Button("취소", role: .cancel) {} +// Button("삭제", role: .destructive) { +// deleteSubComment() +// } +// } message: { +// Text("댓글을 삭제 하겠습니까?") +// } +// } +// } +// +// Text(LocalizedStringKey(comment.content)) +// .applyOpenURL() +// .foregroundStyle(Color.black) +// .font(.label) +// .lineSpacing(4) +// .padding(.top, 2) +// HStack(spacing: 8) { +// Text(comment.createdAt.ymdText) +// .foregroundStyle(Color.gray500) +// .font(.caption) +// } +// .padding(.top, 4) +// } +// Spacer() +// } +// .padding(.top, 8) } } } diff --git a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailView.swift b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailView.swift index 4f8135cd..dd2bfd99 100644 --- a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailView.swift +++ b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailView.swift @@ -8,6 +8,7 @@ import Foundation import SwiftUI +import ADS fileprivate let dummyComment = [ (UUID(), "ㅎㅇ", []), @@ -35,10 +36,13 @@ struct NotificationDetailView: View { @EnvironmentObject var downloadManager: DownloadManager @EnvironmentObject private var appState: AppState @StateObject var vm: NotificationDetailViewModel + @StateObject var homeVm: HomeViewModel @FocusState private var commentInputState: Field? @State var showDialog = false @State var dialog = Dialog.file @State var reader: ScrollViewProxy? + var onClickBookmark: () -> Void + var onClickEmoji: (EmojiType) -> Void @ViewBuilder private var avatar: some View { @@ -109,39 +113,98 @@ struct NotificationDetailView: View { @ViewBuilder private var notificationContainer: some View { HStack(spacing: 0) { - avatar VStack(alignment: .leading, spacing: 0) { - profile - content - .padding(.top, 12) - VStack(spacing: 8) { - if !(vm.notification?.files.isEmpty ?? true) { - downloads - } - if let images = vm.notification?.images { - VStack(spacing: 8) { - if !images.isEmpty { - ImageCeil(images: vm.notification?.images ?? [], info: (vm.notification?.createdAt.ymdText)!, name: vm.notification?.name ?? "") { - - Task { - await vm.downloadImages(images: vm.notification?.images ?? []) { images in - images.forEach { - downloadManager.saveImageToPhotos(image: $0) + HStack(alignment: .top) { + AlimoNotification( + vm.notification!.title, + user: vm.notification!.name, + content: vm.notification!.content, + isSelected: vm.notification!.isBookMarked, + date: vm.notification!.createdAt, + addEmojiAction: {emoji in + onClickEmoji(emoji) + }, + bookmarkAction: { + Task { + await homeVm.patchBookmark(notificationId: vm.notification?.notificationId ?? 0) + await vm.fetchNotification() + } + }, + files: { + var fileInfoArray: [FileInfo] = [] + + if let files = vm.notification?.files, !files.isEmpty { + fileInfoArray.append(contentsOf: files.map { file in + FileInfo(title: file.fileName, type: .image(byte: file.fileSize)) {} + }) + } + + if let images = vm.notification?.images, !images.isEmpty { + fileInfoArray.append(FileInfo(title: images[0].fileName, type: .file(count: vm.notification?.images.count ?? 0)) { + Task { + await vm.downloadImages(images: vm.notification?.images ?? []) { images in + images.forEach { + downloadManager.saveImageToPhotos(image: $0) + } } } dialog = .image showDialog = true - } + }) } - } - } + + return fileInfoArray + }(), + fileDestination: { + PreviewImageView( imageUrls: (vm.notification?.images ?? []).compactMap { ($0 as? ImageOrFile)?.fileUrl }, + name: vm.notification?.name ?? "", + Info: (vm.notification?.createdAt.ymdText)!, + onClickDownload:{}) + }, + hasEmoji: true, + emoji: vm.notification?.emoji ?? nil + ) } + .truncationMode(.tail) + .fixedSize(horizontal: false, vertical: true) + .multilineTextAlignment(.leading) } - info - .padding(.top, 12) } - .padding(.leading, 8) - } + +// HStack(spacing: 0) { +// avatar +// VStack(alignment: .leading, spacing: 0) { +// profile +// content +// .padding(.top, 12) +// VStack(spacing: 8) { +// if !(vm.notification?.files.isEmpty ?? true) { +// downloads +// } +// if let images = vm.notification?.images { +// VStack(spacing: 8) { +// if !images.isEmpty { +// ImageCeil(images: vm.notification?.images ?? [], info: (vm.notification?.createdAt.ymdText)!, name: vm.notification?.name ?? "") { +// +// Task { +// await vm.downloadImages(images: vm.notification?.images ?? []) { images in +// images.forEach { +// downloadManager.saveImageToPhotos(image: $0) +// } +// } +// dialog = .image +// showDialog = true +// } +// } +// } +// } +// } +// } +// info +// .padding(.top, 12) +// } +// .padding(.leading, 8) +// } } @ViewBuilder @@ -180,7 +243,7 @@ struct NotificationDetailView: View { await vm.fetchNotification() } } - .padding(.leading, 44 + 12) +// .padding(.leading, 44 + 12) let radius: CGFloat = 3 let height: CGFloat = 62 + len * 20 + radius @@ -223,7 +286,7 @@ struct NotificationDetailView: View { } } label: { let imojiColor: Color = isCommentEmpty ? .gray300 : .gray700 - Image("Send") + Image(.send) .resizable() .renderingMode(.template) .foregroundStyle(imojiColor) @@ -260,12 +323,12 @@ struct NotificationDetailView: View { .padding(.trailing, 16) Divider() .padding(.top, 16) - EmojiContainer(selectedEmoji: vm.selectedEmoji, emojies: vm.emojies) { emoji in - Task { - await vm.patchEmoji(emoji: emoji) - } - } - .padding(.top, 16) +// EmojiContainer(selectedEmoji: vm.selectedEmoji, emojies: vm.emojies) { emoji in +// Task { +// await vm.patchEmoji(emoji: emoji) +// } +// } +// .padding(.top, 16) comment .padding(.top, 16) Spacer() @@ -305,8 +368,15 @@ struct NotificationDetailView: View { } .task { vm.flow = .fetching - await vm.fetchEmojies() - await vm.fetchNotification() + + await withTaskGroup(of: Void.self) { group in + group.addTask { + await vm.fetchEmojies() + } + group.addTask { + await vm.fetchNotification() + } + } } .alert(isPresented: $showDialog) { switch dialog { diff --git a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailViewModel.swift b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailViewModel.swift index 09b8a1c5..f3ecac9e 100644 --- a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailViewModel.swift +++ b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/NotificationDetailViewModel.swift @@ -8,6 +8,7 @@ import Foundation import UIKit +import ADS fileprivate let emojiService = EmojiService.live fileprivate let notificationService = NotificationService.live diff --git a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/PreviewImageView.swift b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/PreviewImageView.swift index 2b9f26ba..2e9537d4 100644 --- a/Projects/App/Sources/UI/Feature/Main/NotificationDetail/PreviewImageView.swift +++ b/Projects/App/Sources/UI/Feature/Main/NotificationDetail/PreviewImageView.swift @@ -87,7 +87,7 @@ struct PreviewImageView: View { onClickDownload() showDialog = true } label: { - Image("Download") + Image(.download) .resizable() .frame(width: 24, height: 24) diff --git a/Projects/App/Sources/UI/Feature/Onboarding/LaunchScreen/LaunchScreenView.swift b/Projects/App/Sources/UI/Feature/Onboarding/LaunchScreen/LaunchScreenView.swift index 329f9bc8..03da62e7 100644 --- a/Projects/App/Sources/UI/Feature/Onboarding/LaunchScreen/LaunchScreenView.swift +++ b/Projects/App/Sources/UI/Feature/Onboarding/LaunchScreen/LaunchScreenView.swift @@ -10,16 +10,13 @@ import SwiftUI struct LaunchScreenView: View { var body: some View { - ZStack { + ZStack(alignment: .center) { Color.main500 .ignoresSafeArea() - VStack(alignment: .center, spacing: 0) { - AlimoLogo(type: .white) - Text("대소고의 모든 소식") - .font(.body) - .foregroundStyle(Color.main900) - } + Image(.alimoIcon) + .resizable() + .frame(width: 180, height: 180) } } } diff --git a/Projects/App/Sources/UI/Feature/Onboarding/Onboarding/OnboardingFirstView.swift b/Projects/App/Sources/UI/Feature/Onboarding/Onboarding/OnboardingFirstView.swift index 91613f9f..d2eaa41b 100644 --- a/Projects/App/Sources/UI/Feature/Onboarding/Onboarding/OnboardingFirstView.swift +++ b/Projects/App/Sources/UI/Feature/Onboarding/Onboarding/OnboardingFirstView.swift @@ -32,7 +32,7 @@ struct OnboardingFirstView: View { Button { showEasterEgg = true } label: { - Image(Asset.screen) + Image(.screen) } Spacer() NavigationLink { diff --git a/Projects/App/Sources/UI/Util/TextExt.swift b/Projects/App/Sources/UI/Util/TextExt.swift deleted file mode 100644 index 7eb8b08d..00000000 --- a/Projects/App/Sources/UI/Util/TextExt.swift +++ /dev/null @@ -1,10 +0,0 @@ -import SwiftUI - -public extension Text { - func applyOpenURL() -> some View { - self - .environment(\.openURL, OpenURLAction { url in - return .systemAction - }) - } -} diff --git a/Projects/App/Sources/UI/Util/ViewExt.swift b/Projects/App/Sources/UI/Util/ViewExt.swift index b689fcc3..c40f028a 100644 --- a/Projects/App/Sources/UI/Util/ViewExt.swift +++ b/Projects/App/Sources/UI/Util/ViewExt.swift @@ -16,22 +16,6 @@ struct AlimoAnimationButton: ButtonStyle { } } -public extension View { - - func addPressAnimation(_ isPressed: Bool) -> some View { - self - .opacity(isPressed ? 0.64 : 1) - .scaleEffect(isPressed ? 0.96 : 1) - .animation(.easeOut, value: 1) - .disabled(isPressed) - } - - func applyAnimation() -> some View { - self - .buttonStyle(AlimoAnimationButton()) - } -} - extension View { func alimoToolbar(_ title: String, imageColor: Color = .black, @@ -66,48 +50,6 @@ extension UINavigationController: UIGestureRecognizerDelegate { } } -public extension View { - func toLeading() -> some View { - HStack { - self - Spacer() - } - } - - func toTrailing() -> some View { - HStack { - Spacer() - self - } - } - - func toTop() -> some View { - VStack { - self - Spacer() - } - } - - func toBottom() -> some View { - VStack { - Spacer() - self - } - } - - func toCenter() -> some View { - VStack { - Spacer() - HStack { - Spacer() - self - Spacer() - } - Spacer() - } - } -} - extension View { func endTextEditing() { UIApplication.shared.sendAction( diff --git a/Tuist/Dependencies.swift b/Tuist/Dependencies.swift index 7f2dbc81..3a3f1016 100644 --- a/Tuist/Dependencies.swift +++ b/Tuist/Dependencies.swift @@ -12,7 +12,8 @@ let dependencies = Dependencies( .remote(url: "https://github.com/CSolanaM/SkeletonUI.git", requirement: .exact("2.0.1")), .remote(url: "https://github.com/apple/swift-crypto.git", requirement: .upToNextMajor(from: "3.0.0")), .remote(url: "https://github.com/firebase/firebase-ios-sdk", requirement: .exact("10.19.0")), - .remote(url: "https://github.com/kean/Nuke.git", requirement: .exact("12.5")) + .remote(url: "https://github.com/google/GoogleUtilities.git", requirement: .exact("7.13.2")), + .remote(url: "https://github.com/Team-B1ND/ads-ios.git", requirement: .exact("0.2.1")), ] ), platforms: [.iOS] diff --git a/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift b/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift index f9c25715..0107d87d 100644 --- a/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift +++ b/Tuist/ProjectDescriptionHelpers/Dependency+SPM.swift @@ -14,4 +14,5 @@ public extension TargetDependency.SPM { static let FirebaseMessaging = TargetDependency.external(name: "FirebaseMessaging") static let Nuke = TargetDependency.external(name: "Nuke") static let NukeUI = TargetDependency.external(name: "NukeUI") + static let ADS = TargetDependency.external(name: "ADS") } diff --git a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift index 95aecdfd..29f1adc8 100644 --- a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift +++ b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift @@ -17,7 +17,6 @@ public extension Project { var baseSettings = SettingsDictionary() .debugInformationFormat(.dwarfWithDsym) let settings: Settings = .settings( - base: ["DEVELOPMENT_TEAM": "\(teamId)"], configurations: [ .debug(name: .debug, settings: baseSettings), .release(name: .release, settings: baseSettings)