Skip to content

Commit 083da35

Browse files
authored
Merge pull request #100 from antonargunov/master
version 5.0.5
2 parents 0c1a968 + e0a3644 commit 083da35

File tree

5 files changed

+41
-28
lines changed

5 files changed

+41
-28
lines changed

Branch-Xamarin-SDK.iOS/BranchIOSUtils.cs

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -58,35 +58,38 @@ public static Dictionary<string, object> ToDictionary(IOSNativeBranch.BranchUniv
5858
return new Dictionary<string, object> ();
5959
}
6060

61-
NSString[] keys = new NSString[] {
62-
(NSString)"$canonical_identifier",
63-
(NSString)"$canonical_url",
64-
(NSString)"$og_title",
65-
(NSString)"$og_description",
66-
(NSString)"$og_image_url",
67-
(NSString)"$publicly_indexable",
68-
(NSString)"$locally_indexable",
69-
(NSString)"$keywords",
70-
(NSString)"$exp_date",
71-
(NSString)"metadata"
72-
};
61+
var keywordsList = new List<object>();
62+
if (universalObject.Keywords != null) {
63+
foreach (string obj in universalObject.Keywords) {
64+
keywordsList.Add(obj);
65+
}
66+
}
7367

74-
NSObject[] values = new NSObject[] {
75-
NSObject.FromObject(universalObject.CanonicalIdentifier != null ? universalObject.CanonicalIdentifier : "" as object),
76-
NSObject.FromObject(universalObject.CanonicalUrl != null ? universalObject.CanonicalUrl : "" as object),
77-
NSObject.FromObject(universalObject.Title != null ? universalObject.Title : "" as object),
78-
NSObject.FromObject(universalObject.ContentDescription != null ? universalObject.ContentDescription : "" as object),
79-
NSObject.FromObject(universalObject.ImageUrl != null ? universalObject.ImageUrl : "" as object),
80-
NSObject.FromObject((universalObject.PubliclyIndex ? "0" : "1") as object),
81-
NSObject.FromObject((universalObject.LocallyIndex ? "0" : "1") as object),
82-
NSObject.FromObject(universalObject.Keywords != null ? NSArray.FromStrings(universalObject.Keywords) : "" as object),
83-
NSObject.FromObject(universalObject.ExpirationDate != null ? (universalObject.ExpirationDate.SecondsSinceReferenceDate * 1000).ToString() : "" as object),
84-
NSObject.FromObject(universalObject.ContentMetadata != null ? universalObject.ContentMetadata.Dictionary() : "" as object)
85-
};
68+
NSError error = null;
69+
NSData jsonData = NSJsonSerialization.Serialize(universalObject.ContentMetadata.Dictionary(), 0, out error);
8670

87-
NSDictionary dict = NSDictionary.FromObjectsAndKeys (values, keys);
71+
string jsonStr = jsonData.ToString();
72+
Dictionary<string, object> metadataDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonStr);
8873

89-
return ToDictionary (dict);
74+
var dict = new Dictionary<string, object>();
75+
dict.Add("$canonical_identifier", universalObject.CanonicalIdentifier != null ? universalObject.CanonicalIdentifier : "");
76+
dict.Add("$canonical_url", universalObject.CanonicalUrl != null ? universalObject.CanonicalUrl : "");
77+
dict.Add("$og_title", universalObject.Title != null ? universalObject.Title : "");
78+
dict.Add("$og_description", universalObject.ContentDescription != null ? universalObject.ContentDescription : "");
79+
dict.Add("$og_image_url", universalObject.ImageUrl != null ? universalObject.ImageUrl : "");
80+
dict.Add("$publicly_indexable", universalObject.PubliclyIndex ? "0" : "1");
81+
dict.Add("$locally_indexable", universalObject.LocallyIndex ? "0" : "1");
82+
dict.Add("$exp_date", universalObject.ExpirationDate != null ? (universalObject.ExpirationDate.SecondsSinceReferenceDate * 1000).ToString() : "");
83+
84+
if (keywordsList != null) {
85+
dict.Add("$keywords", keywordsList);
86+
}
87+
88+
if (metadataDict != null) {
89+
dict.Add("metadata", metadataDict);
90+
}
91+
92+
return dict;
9093
}
9194

9295
public static Dictionary<string, object> ToDictionary(IOSNativeBranch.BranchLinkProperties linkProperties) {

Branch-Xamarin-SDK/Model/BranchUniversalObject.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ private void Init()
6767
contentIndexMode = 0;
6868
localIndexMode = 0;
6969
keywords = new List<string>();
70-
expirationDate = null;
70+
71+
//NOTE: fix for https://github.com/BranchMetrics/xamarin-branch-deep-linking/issues/97
72+
expirationDate = new DateTime(2200, 12, 30);
7173
}
7274

7375
public void loadFromJson(string json)
@@ -83,6 +85,10 @@ public void loadFromDictionary(Dictionary<string, object> data)
8385
{
8486
if (data == null)
8587
return;
88+
89+
//NOTE: fix for https://github.com/BranchMetrics/xamarin-branch-deep-linking/issues/97
90+
expirationDate = new DateTime(2200, 12, 30);
91+
8692
if (data.ContainsKey("$canonical_identifier") && data["$canonical_identifier"] != null)
8793
{
8894
canonicalIdentifier = data["$canonical_identifier"].ToString();

ChangeLog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
Branch Xamarin SDK change log
22

3+
- 5.0.5
4+
* Fixing #98 Extracting data embedded via HTTP API
5+
* Fixing #97 Purchase events not tracking on iOS with X.Forms
6+
37
- 5.0.4
48
* Updating Branch to iOS version 0.25.11
59

11 MB
Binary file not shown.

NuGet/Branch-Xamarin-SDK.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<id>Branch-Xamarin-Linking-SDK</id>
55
<title>Branch Xamarin SDK</title>
66
<summary>Hosted deep links for your Xamarin-based Android or iOS app by Branch</summary>
7-
<version>5.0.4</version>
7+
<version>5.0.5</version>
88
<authors>Branch</authors>
99
<owners>Branch</owners>
1010
<iconUrl> https://s3-us-west-1.amazonaws.com/branchhost/branch_icon.png</iconUrl>

0 commit comments

Comments
 (0)