ソースを参照

add provider-info api

B. Petersen 5 年 前
コミット
a982194d45
1 ファイル変更36 行追加0 行削除
  1. 36 0
      deltachat-ios/DC/Wrapper.swift

+ 36 - 0
deltachat-ios/DC/Wrapper.swift

@@ -203,6 +203,11 @@ class DcContext {
     func updateDeviceChats() {
         dc_update_device_chats(contextPointer)
     }
+
+    func getProviderFromEmail(addr: String) -> DcProvider? {
+        guard let dcProviderPointer = dc_provider_new_from_email(contextPointer, addr) else { return nil }
+        return DcProvider(dcProviderPointer)
+    }
 }
 
 class DcConfig {
@@ -988,6 +993,37 @@ class DcLot {
     }
 }
 
+class DcProvider {
+    private var dcProviderPointer: OpaquePointer?
+
+    // takes ownership of specified pointer
+    init(_ dcProviderPointer: OpaquePointer) {
+        self.dcProviderPointer = dcProviderPointer
+    }
+
+    deinit {
+        dc_provider_unref(dcProviderPointer)
+    }
+
+    var status: Int32 {
+        return dc_provider_get_status(dcProviderPointer)
+    }
+
+    var beforeLoginHint: String {
+        guard let cString = dc_provider_get_before_login_hint(dcProviderPointer) else { return "" }
+        let swiftString = String(cString: cString)
+        dc_str_unref(cString)
+        return swiftString
+    }
+
+    var getOverviewPage: String {
+        guard let cString = dc_provider_get_overview_page(dcProviderPointer) else { return "" }
+        let swiftString = String(cString: cString)
+        dc_str_unref(cString)
+        return swiftString
+    }
+}
+
 enum ChatType: Int {
     case SINGLE = 100
     case GROUP = 120