Pārlūkot izejas kodu

Merge pull request #753 from deltachat/share_sending_ipc

Share-Extension-To-Main-App-Communication
bjoern 5 gadi atpakaļ
vecāks
revīzija
e2a55f00e7

+ 4 - 0
DcCore/DcCore.xcodeproj/project.pbxproj

@@ -23,6 +23,7 @@
 		30421988243F23E500516852 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30421987243F23E500516852 /* Constants.swift */; };
 		30421988243F23E500516852 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30421987243F23E500516852 /* Constants.swift */; };
 		304F5E41244F2F3200462538 /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 304F5E40244F2F3200462538 /* UIImage+Extensions.swift */; };
 		304F5E41244F2F3200462538 /* UIImage+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 304F5E40244F2F3200462538 /* UIImage+Extensions.swift */; };
 		306C324824460CDE001D89F3 /* DateUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306C324724460CDE001D89F3 /* DateUtils.swift */; };
 		306C324824460CDE001D89F3 /* DateUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306C324724460CDE001D89F3 /* DateUtils.swift */; };
+		308198AB24866229003BE20D /* UserDefaults+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 308198AA24866229003BE20D /* UserDefaults+Extensions.swift */; };
 		30E8F2212447357500CE2C90 /* DatabaseHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E8F2202447357500CE2C90 /* DatabaseHelper.swift */; };
 		30E8F2212447357500CE2C90 /* DatabaseHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E8F2202447357500CE2C90 /* DatabaseHelper.swift */; };
 		30E8F2482449C98600CE2C90 /* UIView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E8F2472449C98600CE2C90 /* UIView+Extensions.swift */; };
 		30E8F2482449C98600CE2C90 /* UIView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E8F2472449C98600CE2C90 /* UIView+Extensions.swift */; };
 		30E8F24B2449CF6500CE2C90 /* InitialsBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E8F24A2449CF6500CE2C90 /* InitialsBadge.swift */; };
 		30E8F24B2449CF6500CE2C90 /* InitialsBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30E8F24A2449CF6500CE2C90 /* InitialsBadge.swift */; };
@@ -59,6 +60,7 @@
 		30421987243F23E500516852 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
 		30421987243F23E500516852 /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
 		304F5E40244F2F3200462538 /* UIImage+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extensions.swift"; sourceTree = "<group>"; };
 		304F5E40244F2F3200462538 /* UIImage+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Extensions.swift"; sourceTree = "<group>"; };
 		306C324724460CDE001D89F3 /* DateUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateUtils.swift; sourceTree = "<group>"; };
 		306C324724460CDE001D89F3 /* DateUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateUtils.swift; sourceTree = "<group>"; };
+		308198AA24866229003BE20D /* UserDefaults+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults+Extensions.swift"; sourceTree = "<group>"; };
 		30E8F2202447357500CE2C90 /* DatabaseHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseHelper.swift; sourceTree = "<group>"; };
 		30E8F2202447357500CE2C90 /* DatabaseHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseHelper.swift; sourceTree = "<group>"; };
 		30E8F2472449C98600CE2C90 /* UIView+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Extensions.swift"; sourceTree = "<group>"; };
 		30E8F2472449C98600CE2C90 /* UIView+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Extensions.swift"; sourceTree = "<group>"; };
 		30E8F24A2449CF6500CE2C90 /* InitialsBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitialsBadge.swift; sourceTree = "<group>"; };
 		30E8F24A2449CF6500CE2C90 /* InitialsBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitialsBadge.swift; sourceTree = "<group>"; };
@@ -155,6 +157,7 @@
 				30421963243F0B8400516852 /* String+Extensions.swift */,
 				30421963243F0B8400516852 /* String+Extensions.swift */,
 				30E8F2472449C98600CE2C90 /* UIView+Extensions.swift */,
 				30E8F2472449C98600CE2C90 /* UIView+Extensions.swift */,
 				304F5E40244F2F3200462538 /* UIImage+Extensions.swift */,
 				304F5E40244F2F3200462538 /* UIImage+Extensions.swift */,
+				308198AA24866229003BE20D /* UserDefaults+Extensions.swift */,
 			);
 			);
 			path = Extensions;
 			path = Extensions;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -324,6 +327,7 @@
 				30421964243F0B8400516852 /* String+Extensions.swift in Sources */,
 				30421964243F0B8400516852 /* String+Extensions.swift in Sources */,
 				30421960243E257100516852 /* UIColor+Extensions.swift in Sources */,
 				30421960243E257100516852 /* UIColor+Extensions.swift in Sources */,
 				30E8F2482449C98600CE2C90 /* UIView+Extensions.swift in Sources */,
 				30E8F2482449C98600CE2C90 /* UIView+Extensions.swift in Sources */,
+				308198AB24866229003BE20D /* UserDefaults+Extensions.swift in Sources */,
 				304F5E41244F2F3200462538 /* UIImage+Extensions.swift in Sources */,
 				304F5E41244F2F3200462538 /* UIImage+Extensions.swift in Sources */,
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;

+ 7 - 0
DcCore/DcCore/Extensions/UserDefaults+Extensions.swift

@@ -0,0 +1,7 @@
+import Foundation
+public extension UserDefaults {
+    static var hasExtensionAttemptedToSend = "hasExtensionAttemptedToSend"
+    static var shared: UserDefaults? {
+        return UserDefaults(suiteName: "group.chat.delta.ios")
+    }
+}

+ 1 - 0
DcShare/Controller/ShareViewController.swift

@@ -157,6 +157,7 @@ extension ShareViewController: SendingControllerDelegate {
     func onSendingAttemptFinished() {
     func onSendingAttemptFinished() {
         DispatchQueue.main.async {
         DispatchQueue.main.async {
             self.popConfigurationViewController()
             self.popConfigurationViewController()
+            UserDefaults.shared?.set(true, forKey: UserDefaults.hasExtensionAttemptedToSend)
             self.quit()
             self.quit()
         }
         }
     }
     }

+ 13 - 1
deltachat-ios/AppDelegate.swift

@@ -103,10 +103,22 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
         logger.info("---- foreground ----")
         logger.info("---- foreground ----")
         appIsInForeground = true
         appIsInForeground = true
         startThreads()
         startThreads()
-
         if reachability.connection != .none {
         if reachability.connection != .none {
             self.dcContext.maybeNetwork()
             self.dcContext.maybeNetwork()
         }
         }
+
+        if let userDefaults = UserDefaults.shared, userDefaults.bool(forKey: UserDefaults.hasExtensionAttemptedToSend) {
+            userDefaults.removeObject(forKey: UserDefaults.hasExtensionAttemptedToSend)
+            let nc = NotificationCenter.default
+
+            DispatchQueue.main.async {
+                nc.post(
+                    name: dcNotificationChanged,
+                    object: nil,
+                    userInfo: [:]
+                )
+            }
+        }
     }
     }
 
 
     func applicationDidEnterBackground(_: UIApplication) {
     func applicationDidEnterBackground(_: UIApplication) {

+ 1 - 0
deltachat-ios/Helper/Constants.swift

@@ -18,6 +18,7 @@ struct Constants {
 
 
     static let defaultCellHeight: CGFloat = 48
     static let defaultCellHeight: CGFloat = 48
     static let defaultHeaderHeight: CGFloat = 20
     static let defaultHeaderHeight: CGFloat = 20
+
 }
 }
 
 
 struct Time {
 struct Time {