100Years 1 місяць тому
батько
коміт
c1684edab5

+ 6 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -45,6 +45,7 @@
 		A85E479B2D6808C40018D62D /* TSBigIconBrowseVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E479A2D6808C30018D62D /* TSBigIconBrowseVC.swift */; };
 		A85E479D2D6809DC0018D62D /* TSBigIconBrowseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E479C2D6809DA0018D62D /* TSBigIconBrowseCell.swift */; };
 		A85E479F2D6859FA0018D62D /* TSRandomTextPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E479E2D6859F80018D62D /* TSRandomTextPicker.swift */; };
+		A85E47BE2D68999B0018D62D /* ShareActivityItemProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E47BD2D68999B0018D62D /* ShareActivityItemProvider.swift */; };
 		A89EA64B2D59A588000EB181 /* MessageKit in Frameworks */ = {isa = PBXBuildFile; productRef = A89EA64A2D59A588000EB181 /* MessageKit */; };
 		A89EA6542D59A9F4000EB181 /* TSTextLayoutSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA64F2D59A9F4000EB181 /* TSTextLayoutSizeCalculator.swift */; };
 		A89EA6552D59A9F4000EB181 /* TSChatMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA6502D59A9F4000EB181 /* TSChatMessage.swift */; };
@@ -172,6 +173,7 @@
 		A85E479A2D6808C30018D62D /* TSBigIconBrowseVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSBigIconBrowseVC.swift; sourceTree = "<group>"; };
 		A85E479C2D6809DA0018D62D /* TSBigIconBrowseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSBigIconBrowseCell.swift; sourceTree = "<group>"; };
 		A85E479E2D6859F80018D62D /* TSRandomTextPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSRandomTextPicker.swift; sourceTree = "<group>"; };
+		A85E47BD2D68999B0018D62D /* ShareActivityItemProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareActivityItemProvider.swift; sourceTree = "<group>"; };
 		A89EA64C2D59A9F4000EB181 /* CustomMessageFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomMessageFlowLayout.swift; sourceTree = "<group>"; };
 		A89EA64E2D59A9F4000EB181 /* TSLayoutSizeCalculator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSLayoutSizeCalculator.swift; sourceTree = "<group>"; };
 		A89EA64F2D59A9F4000EB181 /* TSTextLayoutSizeCalculator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSTextLayoutSizeCalculator.swift; sourceTree = "<group>"; };
@@ -816,6 +818,7 @@
 				A8F775462D39348500AA6E93 /* View */,
 				A8F775442D39346700AA6E93 /* TSSetingViewModel.swift */,
 				A8F775422D39346100AA6E93 /* TSSetingModel.swift */,
+				A85E47BD2D68999B0018D62D /* ShareActivityItemProvider.swift */,
 				A8F7753E2D39340D00AA6E93 /* TSSetingVC.swift */,
 			);
 			path = SetingVC;
@@ -1208,6 +1211,7 @@
 				A80E72562D3F98D700C64288 /* TSDiyKeyboardViewVC.swift in Sources */,
 				A8F775032D38EA8C00AA6E93 /* GlobalImports.swift in Sources */,
 				A89EA67A2D59D25F000EB181 /* TSAIChatVM.swift in Sources */,
+				A85E47BE2D68999B0018D62D /* ShareActivityItemProvider.swift in Sources */,
 				A8F7763C2D3B429B00AA6E93 /* TSCommonloadingView.swift in Sources */,
 				A8F776322D3A771400AA6E93 /* TSGenmojiCollectionViewModel.swift in Sources */,
 				A80E721E2D3F3A7500C64288 /* DiyElement.swift in Sources */,
@@ -1261,7 +1265,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 5;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -1300,7 +1304,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 5;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 1 - 1
AIEmoji.xcodeproj/xcshareddata/xcschemes/AIEmoji.xcscheme

@@ -31,7 +31,7 @@
       shouldAutocreateTestPlan = "YES">
    </TestAction>
    <LaunchAction
-      buildConfiguration = "Debug"
+      buildConfiguration = "Release"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       launchStyle = "0"

+ 10 - 9
AIEmoji/AppDelegate.swift

@@ -37,16 +37,17 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
     
 
     func JudgmentSkipPage() {
-        if UserDefaults.standard.string(forKey: "isFirstInstallApp") == nil {
-            window?.rootViewController = TSBootPageVC { [weak self]  in
-                guard let self = self else { return }
-                UserDefaults.standard.set("1", forKey: "isFirstInstallApp")
-                UserDefaults.standard.synchronize()
-                goToTab()
-            }
-        }else{
+        //去掉引导页
+//        if UserDefaults.standard.string(forKey: "isFirstInstallApp") == nil {
+//            window?.rootViewController = TSBootPageVC { [weak self]  in
+//                guard let self = self else { return }
+//                UserDefaults.standard.set("1", forKey: "isFirstInstallApp")
+//                UserDefaults.standard.synchronize()
+//                goToTab()
+//            }
+//        }else{
             goToTab()
-        }
+//        }
     }
     
 

BIN
AIEmoji/Assets.xcassets/AIChat/aichat_avatar.imageset/aichat_avatar@2x.png


BIN
AIEmoji/Assets.xcassets/AIChat/aichat_avatar.imageset/aichat_avatar@3x.png


+ 2 - 2
AIEmoji/Business/AIChat/TSChatViewController/Models/TSLayoutSizeCalculator.swift

@@ -38,13 +38,13 @@ class TSLayoutSizeCalculator: MessageSizeCalculator {//CellSizeCalculator {
     //消息容器的 UIEdgeInsets
 //    static var cellMessageContainerLeadingEdge:UIEdgeInsets = UIEdgeInsets(top: topSpaceH, left: 8, bottom: 0, right: 16)
     static var cellMessageContainerLeadingEdge:UIEdgeInsets = UIEdgeInsets(top: topSpaceH, left: 16, bottom: 0, right: 16)
-    static var cellMessageContainerTraingEdge:UIEdgeInsets = UIEdgeInsets(top: topSpaceH, left: 16, bottom: 0, right: 16)
+    static var cellMessageContainerTraingEdge:UIEdgeInsets = UIEdgeInsets(top: topSpaceH, left: 68, bottom: 0, right: 16)
     static var cellMessageContainerMinSize:CGSize = CGSizeMake(48, 48)
     
     //消息容器最大宽度
     lazy var messageContainerLeadingMaxWidth: CGFloat = {
         //左头像
-        var cellMessageContainerMaxWidth = messagesLayout.itemWidth - Self.leadingAvatarEdge.left - Self.leadingAvatarSize.width
+        var cellMessageContainerMaxWidth = messagesLayout.itemWidth// - Self.leadingAvatarEdge.left - Self.leadingAvatarSize.width
         //容器 填充
         cellMessageContainerMaxWidth = cellMessageContainerMaxWidth - Self.cellMessageContainerLeadingEdge.left - Self.cellMessageContainerLeadingEdge.right
         return cellMessageContainerMaxWidth

+ 1 - 0
AIEmoji/Business/AIChat/TSChatViewController/Views/TSMessageContentCell.swift

@@ -114,6 +114,7 @@ class TSMessageContentCell: MessageCollectionViewCell {
             make.top.equalTo(cellMessageContainerEdge.top)
             make.bottom.equalTo(-cellMessageContainerEdge.bottom)
         }
+        
     }
     
 

+ 1 - 1
AIEmoji/Business/TSEmojisVC/TSEmojisTutorialsVC/TSEmojisTutorialsVC.swift

@@ -32,7 +32,7 @@ class TSEmojisTutorialsVC: TSBaseVC {
     
     override func createView() {
         addNormalNavBarView()
-        setPageTitle("How to use?".localized)
+        setPageTitle("How to add emojis to iMessages?".localized)
         contentView.addSubview(scrollView)
         scrollView.addSubview(imageView)
     }

+ 4 - 3
AIEmoji/Business/TSGenmojiVC/TSGenmojiGennerateVC/TSGenmojiGennerateVC.swift

@@ -53,9 +53,6 @@ class TSGenmojiGennerateVC: TSBottomAlertVC {
     
     override func closePage() {
         viewModel.cancelAllRequest()
-        if let model = imageModel {
-            complete(model)
-        }
         self.dismiss(animated: true, completion: nil)
     }
     
@@ -171,5 +168,9 @@ extension TSGenmojiGennerateVC {
         }
         
         kPurchaseDefault.useOnceForFree(type: .generatePic)
+        
+        if let model = imageModel {
+            complete(model)
+        }
     }
 }

+ 1 - 1
AIEmoji/Business/TSGenmojiVC/TSGenmojiVC/View/TSGenmojiGennerateCell.swift

@@ -21,7 +21,7 @@ class TSGenmojiGennerateCell : TSBaseCollectionCell{
         let customTextView = TSCustomTextView(
             placeholder: "Type your idea here.",
             text: "",
-            font: .font(size: 12),
+            font: .font(size: 14),
             textColor: .white,
             backgroundColor: "#333333".uiColor,
             textInsets: UIEdgeInsets(top: 21, left: 16, bottom: 21, right: 16)

+ 19 - 0
AIEmoji/Business/TSSetingVC/SetingVC/ShareActivityItemProvider.swift

@@ -0,0 +1,19 @@
+//
+//  ShareActivityItemProvider.swift
+//  TSAvatar
+//
+//  Created by nkl on 2024/11/21.
+//
+
+import Foundation
+import UIKit
+
+class ShareActivityItemProvider: UIActivityItemProvider {
+    // 解决AirDrop分享app失败的问题
+    override func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
+        if activityType == .airDrop {
+            return nil
+        }
+        return placeholderItem
+    }
+}

+ 18 - 15
AIEmoji/Business/TSSetingVC/SetingVC/TSSetingViewModel.swift

@@ -30,27 +30,19 @@ class TSSetingViewModel: ObservableObject {
     // todo.kailen-logo
     func shareApp(parent: UIViewController) {
         let httpAppStoreLink = "https://apps.apple.com/app/id\(appid)"
-        let text = ""
+        let text = "Space"
         let url = URL(string: httpAppStoreLink)!
-        var image = UIImage()
-        if let iconImage = UIImage(named: "App-Icon") {
-            image = iconImage
-        }
-        let vc = UIActivityViewController(activityItems: [image, text, url], applicationActivities: nil)
-        vc.completionWithItemsHandler = { activity, value, _, error in
+        let image = UIImage(named: "App-Icon")!.compressImageSize(to: CGSize(width: 100, height: 100))
+        let final = ShareActivityItemProvider(placeholderItem: image)
+        let vc = UIActivityViewController(activityItems: [url, final, text], applicationActivities: nil)
+        vc.completionWithItemsHandler = { activity, _, _, _ in
             if let type = activity, type == .copyToPasteboard {
                 UIPasteboard.general.string = httpAppStoreLink
             }
         }
-    
-        if UIDevice.isPad {
-            if let popover = vc.popoverPresentationController {
-                popover.sourceView = parent.view // 设置锚点视图
-                popover.sourceRect = CGRect(x: parent.view.bounds.midX, y: parent.view.bounds.midY, width: 0, height: 0) // 设置弹窗位置为屏幕中心
-                popover.permittedArrowDirections = [] // 禁止箭头指向
-            }
-        }
+
         parent.present(vc, animated: true)
+        
     }
     
     func rateAction() {
@@ -92,3 +84,14 @@ class TSSetingViewModel: ObservableObject {
         }
     }
 }
+
+extension UIImage {
+    // 压缩图片到指定尺寸
+    func compressImageSize(to size: CGSize) -> UIImage {
+        let targetSize = size
+        if self.size.width > targetSize.width || self.size.height > targetSize.height {
+            return kf.resize(to: targetSize)
+        }
+        return self
+    }
+}

+ 5 - 3
AIEmoji/Business/TSTextGeneralPictureVC/TSTextPicGennerateVC/TSTextPicGennerateVC.swift

@@ -110,9 +110,6 @@ class TSTextPicGennerateVC: TSBottomAlertVC {
     
     override func closePage() {
         viewModel.cancelAllRequest()
-        if let model = imageModel {
-            complete(model)
-        }
         self.dismiss(animated: true, completion: nil)
     }
     
@@ -245,5 +242,10 @@ extension TSTextPicGennerateVC {
         }
         
         kPurchaseDefault.useOnceForFree(type: .textGeneratePic)
+        
+        
+        if let model = imageModel {
+            complete(model)
+        }
     }
 }

+ 1 - 1
AIEmoji/Business/VIewTool/TSViewTool.swift

@@ -138,7 +138,7 @@ class TSSavePhotoSuccessTool {
             }
         }
 
-        DispatchQueue.main.asyncAfter(deadline: .now()+5.0) {
+        DispatchQueue.main.asyncAfter(deadline: .now()+2.0) {
             self.saveSuccessBg.removeFromSuperview()
         }
     }

+ 1 - 1
AIEmoji/Common/Purchase/TSPurchaseManager.swift

@@ -140,7 +140,7 @@ public class PurchaseManager: NSObject {
 
     @objc public var isVip: Bool {
         #if DEBUG
-//        return true
+        return true
         #endif
         guard let expiresDate = expiredDate else {
             return false