diff --git a/Assets/Plugins/Android/appboy-ui.aar b/Assets/Plugins/Android/appboy-ui.aar index efdff8fbc..7e04d925c 100644 Binary files a/Assets/Plugins/Android/appboy-ui.aar and b/Assets/Plugins/Android/appboy-ui.aar differ diff --git a/Assets/Plugins/Android/appboy-unity.aar b/Assets/Plugins/Android/appboy-unity.aar index 7d4b7375d..3bf3521b4 100644 Binary files a/Assets/Plugins/Android/appboy-unity.aar and b/Assets/Plugins/Android/appboy-unity.aar differ diff --git a/Assets/Plugins/Android/appboy.aar b/Assets/Plugins/Android/appboy.aar index f84745f71..340f89d33 100644 Binary files a/Assets/Plugins/Android/appboy.aar and b/Assets/Plugins/Android/appboy.aar differ diff --git a/Assets/Plugins/Appboy/Editor/PostBuild.cs b/Assets/Plugins/Appboy/Editor/PostBuild.cs index 72948bfd0..1e71c1faa 100644 --- a/Assets/Plugins/Appboy/Editor/PostBuild.cs +++ b/Assets/Plugins/Appboy/Editor/PostBuild.cs @@ -93,6 +93,9 @@ private static void ModifyProject(string path) { project.AddBuildProperty(target, "FRAMEWORK_SEARCH_PATHS", "./Libraries"); project.SetBuildProperty(target, "GCC_ENABLE_OBJC_EXCEPTIONS", "Yes"); + // Note: Remove once Unity supports xcframeworks (SDK-1767). + project.SetBuildProperty(target, "VALIDATE_WORKSPACE", "Yes"); + // Add required frameworks // Note: Unity's documentation for PBXProject.AddFrameworkToProject says that the boolean parameter // should be true if required and false if optional, but actual behavior appears to be the exact opposite. @@ -157,75 +160,81 @@ private static void ModifyPlist(string plistPath) { plist.ReadFromString(File.ReadAllText(plistPath)); PlistElementDict rootDict = plist.root; - // Clear existing Appboy Unity dictionary + // Migrate to Braze Unity dictionary if needed if (rootDict["Appboy"] != null) { - rootDict["Appboy"]["Unity"] = null; + rootDict["Braze"] = rootDict["Appboy"]; + rootDict["Appboy"] = null; + } + + // Clear existing Braze Unity dictionary + if (rootDict["Braze"] != null) { + rootDict["Braze"]["Unity"] = null; } - // Add Appboy Unity keys to Plist + // Add Braze Unity keys to Plist if (AppboyConfig.IOSAutomatesIntegration) { - // The Appboy dictionary - PlistElementDict appboyDict = (rootDict["Appboy"] == null) ? rootDict.CreateDict("Appboy") : rootDict["Appboy"].AsDict(); - // The Appboy Unity dictionary under the Appboy dictionary - PlistElementDict appboyUnityDict = appboyDict.CreateDict("Unity"); + // The Braze dictionary + PlistElementDict brazeDict = (rootDict["Braze"] == null) ? rootDict.CreateDict("Braze") : rootDict["Braze"].AsDict(); + // The Braze Unity dictionary under the Braze dictionary + PlistElementDict brazeUnityDict = brazeDict.CreateDict("Unity"); // Add the iOS Endpoint to Plist if (string.IsNullOrEmpty(AppboyConfig.IOSEndpoint.Trim())) { - appboyDict.values.Remove(ABKEndpointKey); + brazeDict.values.Remove(ABKEndpointKey); } else { - appboyDict.SetString(ABKEndpointKey, AppboyConfig.IOSEndpoint.Trim()); + brazeDict.SetString(ABKEndpointKey, AppboyConfig.IOSEndpoint.Trim()); } if (string.IsNullOrEmpty(AppboyConfig.IOSLogLevel.Trim())) { - appboyDict.values.Remove(ABKLogLevelKey); + brazeDict.values.Remove(ABKLogLevelKey); } else { - appboyDict.SetString(ABKLogLevelKey, AppboyConfig.IOSLogLevel.Trim()); + brazeDict.SetString(ABKLogLevelKey, AppboyConfig.IOSLogLevel.Trim()); } // Add iOS automated integration build keys to Plist if (ValidateField(ABKUnityApiKey, AppboyConfig.IOSApiKey, "Appboy will not be initialized.")) { - appboyUnityDict.SetString(ABKUnityApiKey, AppboyConfig.IOSApiKey.Trim()); + brazeUnityDict.SetString(ABKUnityApiKey, AppboyConfig.IOSApiKey.Trim()); } - appboyUnityDict.SetBoolean(ABKUnityAutomaticPushIntegrationKey, AppboyConfig.IOSIntegratesPush); - appboyUnityDict.SetBoolean(ABKUnityDisableAutomaticPushRegistrationKey, AppboyConfig.IOSDisableAutomaticPushRegistration); + brazeUnityDict.SetBoolean(ABKUnityAutomaticPushIntegrationKey, AppboyConfig.IOSIntegratesPush); + brazeUnityDict.SetBoolean(ABKUnityDisableAutomaticPushRegistrationKey, AppboyConfig.IOSDisableAutomaticPushRegistration); if (AppboyConfig.IOSPushIsBackgroundEnabled) { PlistElementArray backgroundModes = (rootDict["UIBackgroundModes"] == null) ? rootDict.CreateArray("UIBackgroundModes") : rootDict["UIBackgroundModes"].AsArray(); backgroundModes.AddString("remote-notification"); } - appboyUnityDict.SetBoolean(ABKUnityDisableProvisionalAuthKey, AppboyConfig.IOSDisableProvisionalAuth); + brazeUnityDict.SetBoolean(ABKUnityDisableProvisionalAuthKey, AppboyConfig.IOSDisableProvisionalAuth); // Set push listeners if (ValidateListenerFields(ABKUnityPushReceivedGameObjectKey, AppboyConfig.IOSPushReceivedGameObjectName, ABKUnityPushReceivedCallbackKey, AppboyConfig.IOSPushReceivedCallbackMethodName)) { - appboyUnityDict.SetString(ABKUnityPushReceivedGameObjectKey, AppboyConfig.IOSPushReceivedGameObjectName.Trim()); - appboyUnityDict.SetString(ABKUnityPushReceivedCallbackKey, AppboyConfig.IOSPushReceivedCallbackMethodName.Trim()); + brazeUnityDict.SetString(ABKUnityPushReceivedGameObjectKey, AppboyConfig.IOSPushReceivedGameObjectName.Trim()); + brazeUnityDict.SetString(ABKUnityPushReceivedCallbackKey, AppboyConfig.IOSPushReceivedCallbackMethodName.Trim()); } if (ValidateListenerFields(ABKUnityPushOpenedGameObjectKey, AppboyConfig.IOSPushOpenedGameObjectName, ABKUnityPushOpenedCallbackKey, AppboyConfig.IOSPushOpenedCallbackMethodName)) { - appboyUnityDict.SetString(ABKUnityPushOpenedGameObjectKey, AppboyConfig.IOSPushOpenedGameObjectName.Trim()); - appboyUnityDict.SetString(ABKUnityPushOpenedCallbackKey, AppboyConfig.IOSPushOpenedCallbackMethodName.Trim()); + brazeUnityDict.SetString(ABKUnityPushOpenedGameObjectKey, AppboyConfig.IOSPushOpenedGameObjectName.Trim()); + brazeUnityDict.SetString(ABKUnityPushOpenedCallbackKey, AppboyConfig.IOSPushOpenedCallbackMethodName.Trim()); } // Set in-app message listener if (ValidateListenerFields(ABKUnityInAppMessageGameObjectKey, AppboyConfig.IOSInAppMessageGameObjectName, ABKUnityInAppMessageCallbackKey, AppboyConfig.IOSInAppMessageCallbackMethodName)) { - appboyUnityDict.SetString(ABKUnityInAppMessageGameObjectKey, AppboyConfig.IOSInAppMessageGameObjectName.Trim()); - appboyUnityDict.SetString(ABKUnityInAppMessageCallbackKey, AppboyConfig.IOSInAppMessageCallbackMethodName.Trim()); - appboyUnityDict.SetBoolean(ABKUnityHandleInAppMessageDisplayKey, AppboyConfig.IOSDisplayInAppMessages); + brazeUnityDict.SetString(ABKUnityInAppMessageGameObjectKey, AppboyConfig.IOSInAppMessageGameObjectName.Trim()); + brazeUnityDict.SetString(ABKUnityInAppMessageCallbackKey, AppboyConfig.IOSInAppMessageCallbackMethodName.Trim()); + brazeUnityDict.SetBoolean(ABKUnityHandleInAppMessageDisplayKey, AppboyConfig.IOSDisplayInAppMessages); } // Set feed listener if (ValidateListenerFields(ABKUnityFeedGameObjectKey, AppboyConfig.IOSFeedGameObjectName, ABKUnityFeedCallbackKey, AppboyConfig.IOSFeedCallbackMethodName)) { - appboyUnityDict.SetString(ABKUnityFeedGameObjectKey, AppboyConfig.IOSFeedGameObjectName.Trim()); - appboyUnityDict.SetString(ABKUnityFeedCallbackKey, AppboyConfig.IOSFeedCallbackMethodName.Trim()); + brazeUnityDict.SetString(ABKUnityFeedGameObjectKey, AppboyConfig.IOSFeedGameObjectName.Trim()); + brazeUnityDict.SetString(ABKUnityFeedCallbackKey, AppboyConfig.IOSFeedCallbackMethodName.Trim()); } // Set content card listener if (ValidateListenerFields(ABKUnityContentCardsGameObjectKey, AppboyConfig.IOSContentCardsGameObjectName, ABKUnityContentCardsCallbackKey, AppboyConfig.IOSContentCardsCallbackMethodName)) { - appboyUnityDict.SetString(ABKUnityContentCardsGameObjectKey, AppboyConfig.IOSContentCardsGameObjectName.Trim()); - appboyUnityDict.SetString(ABKUnityContentCardsCallbackKey, AppboyConfig.IOSContentCardsCallbackMethodName.Trim()); + brazeUnityDict.SetString(ABKUnityContentCardsGameObjectKey, AppboyConfig.IOSContentCardsGameObjectName.Trim()); + brazeUnityDict.SetString(ABKUnityContentCardsCallbackKey, AppboyConfig.IOSContentCardsCallbackMethodName.Trim()); } } diff --git a/Assets/Plugins/Appboy/models.meta b/Assets/Plugins/Appboy/Models.meta similarity index 100% rename from Assets/Plugins/Appboy/models.meta rename to Assets/Plugins/Appboy/Models.meta diff --git a/Assets/Plugins/Appboy/models/AppboyNotificationSubscriptionType.cs b/Assets/Plugins/Appboy/Models/AppboyNotificationSubscriptionType.cs similarity index 100% rename from Assets/Plugins/Appboy/models/AppboyNotificationSubscriptionType.cs rename to Assets/Plugins/Appboy/Models/AppboyNotificationSubscriptionType.cs diff --git a/Assets/Plugins/Appboy/models/AppboyNotificationSubscriptionType.cs.meta b/Assets/Plugins/Appboy/Models/AppboyNotificationSubscriptionType.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/AppboyNotificationSubscriptionType.cs.meta rename to Assets/Plugins/Appboy/Models/AppboyNotificationSubscriptionType.cs.meta diff --git a/Assets/Plugins/Appboy/models/ApplePushNotification.cs b/Assets/Plugins/Appboy/Models/ApplePushNotification.cs similarity index 98% rename from Assets/Plugins/Appboy/models/ApplePushNotification.cs rename to Assets/Plugins/Appboy/Models/ApplePushNotification.cs index 02e4dc96d..0d55cc4d7 100755 --- a/Assets/Plugins/Appboy/models/ApplePushNotification.cs +++ b/Assets/Plugins/Appboy/Models/ApplePushNotification.cs @@ -21,9 +21,7 @@ public class ApplePushNotification { // https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW10 public IDictionary Extra { get; set; } - public ApplePushNotification(string jsonString) : this((JSONClass) JSON.Parse(jsonString)) { - - } + public ApplePushNotification(string jsonString) : this((JSONClass) JSON.Parse(jsonString)) {} public ApplePushNotification(JSONClass json) { Alert = new ApplePushNotificationAlert(json["alert"].AsObject); diff --git a/Assets/Plugins/Appboy/models/ApplePushNotification.cs.meta b/Assets/Plugins/Appboy/Models/ApplePushNotification.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/ApplePushNotification.cs.meta rename to Assets/Plugins/Appboy/Models/ApplePushNotification.cs.meta diff --git a/Assets/Plugins/Appboy/models/ApplePushNotificationAlert.cs b/Assets/Plugins/Appboy/Models/ApplePushNotificationAlert.cs similarity index 100% rename from Assets/Plugins/Appboy/models/ApplePushNotificationAlert.cs rename to Assets/Plugins/Appboy/Models/ApplePushNotificationAlert.cs diff --git a/Assets/Plugins/Appboy/models/ApplePushNotificationAlert.cs.meta b/Assets/Plugins/Appboy/Models/ApplePushNotificationAlert.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/ApplePushNotificationAlert.cs.meta rename to Assets/Plugins/Appboy/Models/ApplePushNotificationAlert.cs.meta diff --git a/Assets/Plugins/Appboy/models/CardCategory.cs b/Assets/Plugins/Appboy/Models/CardCategory.cs similarity index 100% rename from Assets/Plugins/Appboy/models/CardCategory.cs rename to Assets/Plugins/Appboy/Models/CardCategory.cs diff --git a/Assets/Plugins/Appboy/models/CardCategory.cs.meta b/Assets/Plugins/Appboy/Models/CardCategory.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/CardCategory.cs.meta rename to Assets/Plugins/Appboy/Models/CardCategory.cs.meta diff --git a/Assets/Plugins/Appboy/models/Cards.meta b/Assets/Plugins/Appboy/Models/Cards.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards.meta rename to Assets/Plugins/Appboy/Models/Cards.meta diff --git a/Assets/Plugins/Appboy/models/Cards/BannerCard.cs b/Assets/Plugins/Appboy/Models/Cards/BannerCard.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/BannerCard.cs rename to Assets/Plugins/Appboy/Models/Cards/BannerCard.cs diff --git a/Assets/Plugins/Appboy/models/Cards/BannerCard.cs.meta b/Assets/Plugins/Appboy/Models/Cards/BannerCard.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/BannerCard.cs.meta rename to Assets/Plugins/Appboy/Models/Cards/BannerCard.cs.meta diff --git a/Assets/Plugins/Appboy/models/Cards/CaptionedImageCard.cs b/Assets/Plugins/Appboy/Models/Cards/CaptionedImageCard.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/CaptionedImageCard.cs rename to Assets/Plugins/Appboy/Models/Cards/CaptionedImageCard.cs diff --git a/Assets/Plugins/Appboy/models/Cards/CaptionedImageCard.cs.meta b/Assets/Plugins/Appboy/Models/Cards/CaptionedImageCard.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/CaptionedImageCard.cs.meta rename to Assets/Plugins/Appboy/Models/Cards/CaptionedImageCard.cs.meta diff --git a/Assets/Plugins/Appboy/models/Cards/Card.cs b/Assets/Plugins/Appboy/Models/Cards/Card.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/Card.cs rename to Assets/Plugins/Appboy/Models/Cards/Card.cs diff --git a/Assets/Plugins/Appboy/models/Cards/Card.cs.meta b/Assets/Plugins/Appboy/Models/Cards/Card.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/Card.cs.meta rename to Assets/Plugins/Appboy/Models/Cards/Card.cs.meta diff --git a/Assets/Plugins/Appboy/models/Cards/ClassicCard.cs b/Assets/Plugins/Appboy/Models/Cards/ClassicCard.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/ClassicCard.cs rename to Assets/Plugins/Appboy/Models/Cards/ClassicCard.cs diff --git a/Assets/Plugins/Appboy/models/Cards/ClassicCard.cs.meta b/Assets/Plugins/Appboy/Models/Cards/ClassicCard.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/ClassicCard.cs.meta rename to Assets/Plugins/Appboy/Models/Cards/ClassicCard.cs.meta diff --git a/Assets/Plugins/Appboy/models/Cards/ContentCard.cs b/Assets/Plugins/Appboy/Models/Cards/ContentCard.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/ContentCard.cs rename to Assets/Plugins/Appboy/Models/Cards/ContentCard.cs diff --git a/Assets/Plugins/Appboy/models/Cards/ContentCard.cs.meta b/Assets/Plugins/Appboy/Models/Cards/ContentCard.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/ContentCard.cs.meta rename to Assets/Plugins/Appboy/Models/Cards/ContentCard.cs.meta diff --git a/Assets/Plugins/Appboy/models/Cards/TextAnnouncementCard.cs b/Assets/Plugins/Appboy/Models/Cards/TextAnnouncementCard.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/TextAnnouncementCard.cs rename to Assets/Plugins/Appboy/Models/Cards/TextAnnouncementCard.cs diff --git a/Assets/Plugins/Appboy/models/Cards/TextAnnouncementCard.cs.meta b/Assets/Plugins/Appboy/Models/Cards/TextAnnouncementCard.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Cards/TextAnnouncementCard.cs.meta rename to Assets/Plugins/Appboy/Models/Cards/TextAnnouncementCard.cs.meta diff --git a/Assets/Plugins/Appboy/models/ClickAction.cs b/Assets/Plugins/Appboy/Models/ClickAction.cs similarity index 100% rename from Assets/Plugins/Appboy/models/ClickAction.cs rename to Assets/Plugins/Appboy/Models/ClickAction.cs diff --git a/Assets/Plugins/Appboy/models/ClickAction.cs.meta b/Assets/Plugins/Appboy/Models/ClickAction.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/ClickAction.cs.meta rename to Assets/Plugins/Appboy/Models/ClickAction.cs.meta diff --git a/Assets/Plugins/Appboy/models/DismissType.cs b/Assets/Plugins/Appboy/Models/DismissType.cs similarity index 100% rename from Assets/Plugins/Appboy/models/DismissType.cs rename to Assets/Plugins/Appboy/Models/DismissType.cs diff --git a/Assets/Plugins/Appboy/models/DismissType.cs.meta b/Assets/Plugins/Appboy/Models/DismissType.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/DismissType.cs.meta rename to Assets/Plugins/Appboy/Models/DismissType.cs.meta diff --git a/Assets/Plugins/Appboy/models/Feed.cs b/Assets/Plugins/Appboy/Models/Feed.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Feed.cs rename to Assets/Plugins/Appboy/Models/Feed.cs diff --git a/Assets/Plugins/Appboy/models/Feed.cs.meta b/Assets/Plugins/Appboy/Models/Feed.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Feed.cs.meta rename to Assets/Plugins/Appboy/Models/Feed.cs.meta diff --git a/Assets/Plugins/Appboy/models/Gender.cs b/Assets/Plugins/Appboy/Models/Gender.cs similarity index 100% rename from Assets/Plugins/Appboy/models/Gender.cs rename to Assets/Plugins/Appboy/Models/Gender.cs diff --git a/Assets/Plugins/Appboy/models/Gender.cs.meta b/Assets/Plugins/Appboy/Models/Gender.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/Gender.cs.meta rename to Assets/Plugins/Appboy/Models/Gender.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage.meta b/Assets/Plugins/Appboy/Models/InAppMessage.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage.meta rename to Assets/Plugins/Appboy/Models/InAppMessage.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/IInAppMessage.cs b/Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessage.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/IInAppMessage.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessage.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/IInAppMessage.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessage.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/IInAppMessage.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessage.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/IInAppMessageImmersive.cs b/Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessageImmersive.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/IInAppMessageImmersive.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessageImmersive.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/IInAppMessageImmersive.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessageImmersive.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/IInAppMessageImmersive.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/IInAppMessageImmersive.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageBase.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageBase.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageBase.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageBase.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageBase.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageBase.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageBase.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageBase.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageButton.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageButton.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageButton.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageButton.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageButton.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageButton.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageButton.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageButton.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageConstants.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageConstants.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageConstants.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageConstants.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageConstants.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageConstants.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageConstants.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageConstants.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFactory.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFactory.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFactory.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFactory.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFactory.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFactory.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFactory.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFactory.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFull.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFull.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFull.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFull.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFull.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFull.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageFull.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageFull.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageImmersiveBase.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageImmersiveBase.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageImmersiveBase.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageImmersiveBase.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageImmersiveBase.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageImmersiveBase.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageImmersiveBase.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageImmersiveBase.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageModal.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageModal.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageModal.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageModal.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageModal.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageModal.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageModal.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageModal.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageSlideup.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageSlideup.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageSlideup.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageSlideup.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageSlideup.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageSlideup.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageSlideup.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageSlideup.cs.meta diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageType.cs b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageType.cs similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageType.cs rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageType.cs diff --git a/Assets/Plugins/Appboy/models/InAppMessage/InAppMessageType.cs.meta b/Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageType.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/InAppMessage/InAppMessageType.cs.meta rename to Assets/Plugins/Appboy/Models/InAppMessage/InAppMessageType.cs.meta diff --git a/Assets/Plugins/Appboy/models/PushNotification.cs b/Assets/Plugins/Appboy/Models/PushNotification.cs similarity index 93% rename from Assets/Plugins/Appboy/models/PushNotification.cs rename to Assets/Plugins/Appboy/Models/PushNotification.cs index e6bd9a014..e49fa469e 100755 --- a/Assets/Plugins/Appboy/models/PushNotification.cs +++ b/Assets/Plugins/Appboy/Models/PushNotification.cs @@ -10,6 +10,7 @@ public class PushNotification { public Dictionary Extras { get; private set; } public int AndroidNotificationId { get; private set; } public long AndroidPushReceivedTimestamp { get; private set; } + public string Deeplink { get; private set; } public PushNotification(string message) { if (String.IsNullOrEmpty(message)) { @@ -24,6 +25,7 @@ public PushNotification(string message) { } Title = SafeGetString(json, "t", null); Content = SafeGetString(json, "a", null); + Deeplink = SafeGetString(json, "uri", null); AndroidNotificationId = SafeGetInt(json, "nid", -1); AndroidPushReceivedTimestamp = SafeGetLong(json, "appboy_push_received_timestamp", -1); if (json["extra"] != null) { @@ -34,8 +36,8 @@ public PushNotification(string message) { } public override string ToString() { - return String.Format("PushNotification[Title={0}, Content={1}, Extras={2}, AndroidNotificationId={3}, AndroidPushReceivedTimestamp={4}, RawJson={5}]", - Title, Content, CollectionUtils.DictionaryToString(Extras), AndroidNotificationId, AndroidPushReceivedTimestamp, RawJsonString); + return String.Format("PushNotification[Title={0}, Content={1}, Extras={2}, AndroidNotificationId={3}, AndroidPushReceivedTimestamp={4}, Deeplink={5}, RawJson={6}]", + Title, Content, CollectionUtils.DictionaryToString(Extras), AndroidNotificationId, AndroidPushReceivedTimestamp, Deeplink, RawJsonString); } private string SafeGetString(JSONClass json, string key, string defaultValue) { diff --git a/Assets/Plugins/Appboy/models/PushNotification.cs.meta b/Assets/Plugins/Appboy/Models/PushNotification.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/PushNotification.cs.meta rename to Assets/Plugins/Appboy/Models/PushNotification.cs.meta diff --git a/Assets/Plugins/Appboy/models/SlideFrom.cs b/Assets/Plugins/Appboy/Models/SlideFrom.cs similarity index 100% rename from Assets/Plugins/Appboy/models/SlideFrom.cs rename to Assets/Plugins/Appboy/Models/SlideFrom.cs diff --git a/Assets/Plugins/Appboy/models/SlideFrom.cs.meta b/Assets/Plugins/Appboy/Models/SlideFrom.cs.meta similarity index 100% rename from Assets/Plugins/Appboy/models/SlideFrom.cs.meta rename to Assets/Plugins/Appboy/Models/SlideFrom.cs.meta diff --git a/Assets/Plugins/iOS/AppboyUnityManager.h b/Assets/Plugins/iOS/AppboyUnityManager.h index 7e50a9e01..1cbfdaf14 100644 --- a/Assets/Plugins/iOS/AppboyUnityManager.h +++ b/Assets/Plugins/iOS/AppboyUnityManager.h @@ -44,7 +44,7 @@ typedef NS_ENUM(NSInteger, ABKUnityInAppMessageDisplayActionType) { @interface AppboyUnityManager : NSObject -@property (nonatomic,copy) NSDictionary *appboyUnityPlist; +@property (nonatomic,copy) NSDictionary *brazeUnityPlist; @property (nonatomic, copy) NSString *unityFeedGameObjectName; @property (nonatomic, copy) NSString *unityFeedCallbackFunctionName; @property (nonatomic, copy) NSString *unityContentCardsGameObjectName; diff --git a/Assets/Plugins/iOS/AppboyUnityManager.mm b/Assets/Plugins/iOS/AppboyUnityManager.mm index aa19c631c..0577d8bf4 100644 --- a/Assets/Plugins/iOS/AppboyUnityManager.mm +++ b/Assets/Plugins/iOS/AppboyUnityManager.mm @@ -46,13 +46,13 @@ - (instancetype)init { # pragma mark - Config - (NSString *)getApiKeyFromUnity { - return self.appboyUnityPlist[ABKUnityApiKey]; + return self.brazeUnityPlist[ABKUnityApiKey]; } - (NSDictionary *)parsePlist { - NSDictionary* appboyUnityPlist = [[NSBundle mainBundle] infoDictionary][@"Appboy"][@"Unity"]; - self.appboyUnityPlist = appboyUnityPlist; - return appboyUnityPlist; + NSDictionary* brazeUnityPlist = [[NSBundle mainBundle] infoDictionary][@"Braze"][@"Unity"]; + self.brazeUnityPlist = brazeUnityPlist; + return brazeUnityPlist; } # pragma mark - Social Media @@ -466,11 +466,11 @@ - (void)configureListenerFor:(NSInteger)messageType withGameObject:(NSString *)g } - (void)setListenersFromPList { - [self addPushReceivedListenerWithObjectName:self.appboyUnityPlist[ABKUnityPushReceivedGameObjectKey] callbackMethodName:self.appboyUnityPlist[ABKUnityPushReceivedCallbackKey]]; - [self addPushOpenedListenerWithObjectName:self.appboyUnityPlist[ABKUnityPushOpenedGameObjectKey] callbackMethodName:self.appboyUnityPlist[ABKUnityPushOpenedCallbackKey]]; - [self addInAppMessageListenerWithObjectNameAndSetDelegate:self.appboyUnityPlist[ABKUnityInAppMessageGameObjectKey] callbackMethodName:self.appboyUnityPlist[ABKUnityInAppMessageCallbackKey]]; - [self addContentCardsListenerWithObjectName:self.appboyUnityPlist[ABKUnityContentCardsGameObjectKey] callbackMethodName:self.appboyUnityPlist[ABKUnityContentCardsCallbackKey]]; - [self addFeedListenerWithObjectName:self.appboyUnityPlist[ABKUnityFeedGameObjectKey] callbackMethodName:self.appboyUnityPlist[ABKUnityFeedCallbackKey]]; + [self addPushReceivedListenerWithObjectName:self.brazeUnityPlist[ABKUnityPushReceivedGameObjectKey] callbackMethodName:self.brazeUnityPlist[ABKUnityPushReceivedCallbackKey]]; + [self addPushOpenedListenerWithObjectName:self.brazeUnityPlist[ABKUnityPushOpenedGameObjectKey] callbackMethodName:self.brazeUnityPlist[ABKUnityPushOpenedCallbackKey]]; + [self addInAppMessageListenerWithObjectNameAndSetDelegate:self.brazeUnityPlist[ABKUnityInAppMessageGameObjectKey] callbackMethodName:self.brazeUnityPlist[ABKUnityInAppMessageCallbackKey]]; + [self addContentCardsListenerWithObjectName:self.brazeUnityPlist[ABKUnityContentCardsGameObjectKey] callbackMethodName:self.brazeUnityPlist[ABKUnityContentCardsCallbackKey]]; + [self addFeedListenerWithObjectName:self.brazeUnityPlist[ABKUnityFeedGameObjectKey] callbackMethodName:self.brazeUnityPlist[ABKUnityFeedCallbackKey]]; } - (void)addInAppMessageListenerWithObjectNameAndSetDelegate:(NSString *)gameObject callbackMethodName:(NSString *)callbackMethod { @@ -527,7 +527,7 @@ - (void)userNotificationCenter:(UNUserNotificationCenter *)center completionHandler(); } - if ([self.appboyUnityPlist[ABKUnityAutomaticPushIntegrationKey] boolValue]) { + if ([self.brazeUnityPlist[ABKUnityAutomaticPushIntegrationKey] boolValue]) { [[Appboy sharedInstance] userNotificationCenter:center didReceiveNotificationResponse:response withCompletionHandler:completionHandler]; [self forwardNotification:response.notification.request.content.userInfo]; } @@ -547,7 +547,7 @@ - (ABKInAppMessageDisplayChoice)beforeInAppMessageDisplayed:(ABKInAppMessage *)i NSData *inAppMessageData = [inAppMessage serializeToData]; NSString *dataString = [[NSString alloc] initWithData:inAppMessageData encoding:NSUTF8StringEncoding]; [self unitySendMessageTo:self.unityInAppMessageGameObjectName withMethod:self.unityInAppMessageCallbackFunctionName withMessage:dataString]; - if ([self.appboyUnityPlist[ABKUnityHandleInAppMessageDisplayKey] boolValue]) { + if ([self.brazeUnityPlist[ABKUnityHandleInAppMessageDisplayKey] boolValue]) { NSLog(@"Braze configured to display in-app messages despite presence of game object listener. Using display action: %ld.", (long)self.displayAction); return self.displayAction; } diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy.bundle/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy.bundle/Info.plist index 925ef59e6..c34bcb385 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy.bundle/Info.plist and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy.bundle/Info.plist differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc.meta deleted file mode 100644 index 94b2e67cb..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0a9355fb3feaa4ca683e3182a2dbc870 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib.meta deleted file mode 100644 index fd4fcd1d4..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c26f76ccdff3f4b8098baa54e285e860 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/objects-11.0+.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/objects-11.0+.nib deleted file mode 100644 index 13012613d..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/objects-11.0+.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/objects-11.0+.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/objects-11.0+.nib.meta deleted file mode 100644 index 4e9ab708b..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/objects-11.0+.nib.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: bc81a74aedd164a11a1e3c9ecb4977db -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/runtime.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/runtime.nib deleted file mode 100644 index 39a7eb96b..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/runtime.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib.meta deleted file mode 100644 index 255242b75..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b649381ec365f4186bc0c631b0db6618 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/objects-11.0+.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/objects-11.0+.nib deleted file mode 100644 index df214039d..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/objects-11.0+.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/runtime.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/runtime.nib deleted file mode 100644 index 2df778b29..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/runtime.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/Info.plist deleted file mode 100644 index 442f9a91b..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/Info.plist and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/Info.plist.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/Info.plist.meta deleted file mode 100644 index 3e94f3936..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/Info.plist.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 355416dbfeee24d17b611c8b25d2e7d7 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib.meta deleted file mode 100644 index 3d3299f8f..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 11b5bb77c724c4c6cab6af881e854a86 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/objects-11.0+.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/objects-11.0+.nib deleted file mode 100644 index 75c6b0693..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/objects-11.0+.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/objects-11.0+.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/objects-11.0+.nib.meta deleted file mode 100644 index cc6f65d8c..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/objects-11.0+.nib.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f72f406792a7041268c1196f7161c26a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/runtime.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/runtime.nib deleted file mode 100644 index ac7c585e7..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/runtime.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/runtime.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/runtime.nib.meta deleted file mode 100644 index 9a918fffc..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib/runtime.nib.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c01f864f7faff4b1c9bde2f1ba7ccc09 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/Info.plist index 9c92bd789..fc95b2ee7 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/Info.plist and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/Info.plist differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned.png b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned.png index b9e2d12b3..c94da28ec 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned.png and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned.png differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@2x.png b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@2x.png index 2c6fce381..67da8c129 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@2x.png and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@2x.png differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@3x.png b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@3x.png index 44d0f570d..639ecfcb3 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@3x.png and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/appboy_cc_icon_pinned@3x.png differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/objects-11.0+.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/objects-11.0+.nib index 36c60c48c..38012816c 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/objects-11.0+.nib and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/objects-11.0+.nib differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/runtime.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/runtime.nib index 21b71f315..a52949ccc 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/runtime.nib and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageFullViewController.nib/runtime.nib differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageModalViewController.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageModalViewController.nib index a1c082ee0..a92afebc1 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageModalViewController.nib and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageModalViewController.nib differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageSlideupViewController.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageSlideupViewController.nib index 2f3296555..146a13ddc 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageSlideupViewController.nib and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/ABKInAppMessageSlideupViewController.nib differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/Info.plist index 1d40adf09..b9189d93d 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/Info.plist and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.InAppMessage.bundle/Info.plist differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc.meta deleted file mode 100644 index 9e9c3a2c6..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5ab2ca080124642d58133ed8a9c97b5f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedTableViewController.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedTableViewController.nib deleted file mode 100644 index fa982bff6..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedTableViewController.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedTableViewController.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedTableViewController.nib.meta deleted file mode 100644 index dd617abce..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedTableViewController.nib.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 30fa6a037208a42e3bcdb76582085cd0 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedViewController.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedViewController.nib deleted file mode 100644 index 052845287..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedViewController.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedViewController.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedViewController.nib.meta deleted file mode 100644 index 23050d084..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/ABKNewsFeedViewController.nib.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c1ca49894a90045e39efe7f0cd6601f2 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/Info.plist deleted file mode 100644 index 5cd449e2f..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/Info.plist and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/Info.plist.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/Info.plist.meta deleted file mode 100644 index 1019bc54a..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/Info.plist.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 1403ad2d3d78e475cae6b5a9bb475aa3 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib deleted file mode 100644 index 41dcf2bc1..000000000 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib and /dev/null differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib.meta deleted file mode 100644 index 5f7df2cc4..000000000 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/ABKNewsFeedCardStoryboard.storyboardc/pNw-1d-kzS-view-QfY-bo-EsO.nib.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: b919eaf7eb31e4935bc2a32d430de6eb -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/Info.plist index 63ad9f434..c6628f2ae 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/Info.plist and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.NewsFeed.bundle/Info.plist differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy_iOS_SDK b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy_iOS_SDK index 2f5025e23..27b01ed43 100755 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy_iOS_SDK and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Appboy_iOS_SDK differ diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBannerContentCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBannerContentCardCell.h index e3e345e50..61e6fb45f 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBannerContentCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBannerContentCardCell.h @@ -1,14 +1,11 @@ #import "ABKBaseContentCardCell.h" #import "ABKBannerContentCard.h" -#import @interface ABKBannerContentCardCell : ABKBaseContentCardCell -@property (weak, nonatomic) IBOutlet SDAnimatedImageView *bannerImageView; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageRatioConstraint; +@property (strong, nonatomic) IBOutlet UIImageView *bannerImageView; +@property (strong, nonatomic) IBOutlet NSLayoutConstraint *imageRatioConstraint; - (void)applyCard:(ABKBannerContentCard *)bannerCard; -- (void)updateImageConstraintsWithRatio:(CGFloat)newRatio; - @end diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBaseContentCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBaseContentCardCell.h index f03cadeb8..662506511 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBaseContentCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKBaseContentCardCell.h @@ -3,7 +3,7 @@ @protocol ABKBaseContentCardCellDelegate -- (void)refreshTableViewCellHeights; +- (void)cellRequestSizeUpdate:(UITableViewCell *)cell; @end @@ -14,27 +14,28 @@ * configure the outline of the card like card width, background color board width, etc, you can * update this property accordingly. */ -@property (weak, nonatomic) IBOutlet UIView *rootView; +@property (nonatomic) IBOutlet UIView *rootView; /*! * This is the triangle image which shows if a card has been viewed by the user. */ -@property (weak, nonatomic) IBOutlet UIImageView *pinImageView; +@property (nonatomic) IBOutlet UIImageView *pinImageView; /*! * This is the blue line under unviewed cards. */ -@property (weak, nonatomic) IBOutlet UIView *unviewedLineView; +@property (nonatomic) IBOutlet UIView *unviewedLineView; +@property (nonatomic) UIColor *unviewedLineViewColor; /*! * Card root view related constraints */ -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewLeadingConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewTrailingConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewTopConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewBottomConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewLeadingConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewTrailingConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewTopConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewBottomConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *cardWidthConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *cardWidthConstraint; /*! * These are basic UI configuration for the Content Cards feed. They are set to the default values in the @@ -63,9 +64,25 @@ */ - (UIImage *)getPlaceHolderImage; +- (Class)imageViewClass; + +/*! + * @discussion initialization that always occurs for the content card cells + */ +- (void)setUp; + +/*! + * @discussion Initialization that is in place of Storyboard or XIB initialization. + * This method should call all the property specific setUp methods. + */ +- (void)setUpUI; + /*! * @discussion This is a utility method to make text styled. */ - (void)applyAppboyAttributedTextStyleFrom:(NSString *)text forLabel:(UILabel *)label; @end + +static const UILayoutPriority ABKContentCardPriorityLayoutRequiredBelowAppleRequired = UILayoutPriorityRequired - 1; + diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKCaptionedImageContentCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKCaptionedImageContentCardCell.h index 501e353ab..d0fab0bd2 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKCaptionedImageContentCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKCaptionedImageContentCardCell.h @@ -1,24 +1,17 @@ #import "ABKBaseContentCardCell.h" #import "ABKCaptionedImageContentCard.h" -#import @interface ABKCaptionedImageContentCardCell : ABKBaseContentCardCell -@property (weak, nonatomic) IBOutlet SDAnimatedImageView *captionedImageView; -@property (weak, nonatomic) IBOutlet UILabel *titleLabel; -@property (weak, nonatomic) IBOutlet UILabel *descriptionLabel; -@property (weak, nonatomic) IBOutlet UIView *TitleBackgroundView; -@property (weak, nonatomic) IBOutlet UILabel *linkLabel; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageHeightContraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *descriptionBottomConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *linkBottomConstraint; +@property (class, nonatomic) UIColor *titleLabelColor; +@property (class, nonatomic) UIColor *descriptionLabelColor; +@property (class, nonatomic) UIColor *linkLabelColor; -/*! - * This method adjusts the constraints and hides or shows the link label. - */ -- (void)hideLinkLabel:(BOOL)hide; - -- (void)updateImageConstraintsWithNewConstant:(CGFloat)newConstant; +@property (strong, nonatomic) IBOutlet UIImageView *captionedImageView; +@property (strong, nonatomic) IBOutlet NSLayoutConstraint *imageRatioConstraint; +@property (strong, nonatomic) IBOutlet UILabel *titleLabel; +@property (strong, nonatomic) IBOutlet UILabel *descriptionLabel; +@property (strong, nonatomic) IBOutlet UILabel *linkLabel; - (void)applyCard:(ABKCaptionedImageContentCard *)captionedImageCard; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicContentCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicContentCardCell.h index dc98c4840..c2a33f1e7 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicContentCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicContentCardCell.h @@ -3,16 +3,18 @@ @interface ABKClassicContentCardCell : ABKBaseContentCardCell -@property (weak, nonatomic) IBOutlet UILabel *titleLabel; -@property (weak, nonatomic) IBOutlet UILabel *descriptionLabel; -@property (weak, nonatomic) IBOutlet UILabel *linkLabel; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *descriptionBottomConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *linkBottomConstraint; +@property (class, nonatomic) UIColor *titleLabelColor; +@property (class, nonatomic) UIColor *descriptionLabelColor; +@property (class, nonatomic) UIColor *linkLabelColor; -/*! - * This method adjusts the constraints and hides or shows the link label. - */ -- (void)hideLinkLabel:(BOOL)hide; +@property (strong, nonatomic) IBOutlet UILabel *titleLabel; +@property (strong, nonatomic) IBOutlet UILabel *descriptionLabel; +@property (strong, nonatomic) IBOutlet UILabel *linkLabel; + +@property (strong, nonatomic) NSArray *descriptionConstraints; +@property (strong, nonatomic) NSArray *linkConstraints; + +@property (nonatomic, assign) CGFloat padding; - (void)applyCard:(ABKClassicContentCard *)classicCard; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicImageContentCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicImageContentCardCell.h index d72de2d3b..276f4a4fb 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicImageContentCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKClassicImageContentCardCell.h @@ -1,5 +1,4 @@ #import "ABKClassicContentCardCell.h" -#import /*! * The ABKClassicContentCard has an optional image property. @@ -8,7 +7,7 @@ */ @interface ABKClassicImageContentCardCell : ABKClassicContentCardCell -@property (weak, nonatomic) IBOutlet SDAnimatedImageView *classicImageView; +@property (strong, nonatomic) IBOutlet UIImageView *classicImageView; - (void)applyCard:(ABKClassicContentCard *)classicCard; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCard.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCard.h index 03a72236b..b9020fe04 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCard.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCard.h @@ -99,7 +99,8 @@ NS_ASSUME_NONNULL_BEGIN /*! * Manually dismiss a card. - * It can be done only if the card is dismissable. + * Sets the card's `dismissed` property to YES and logs the dismissal to Braze. + * Only has effect if the card is dismissible and if the `dismissed` property is currently set to NO. */ - (void)logContentCardDismissed; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsController.h index 03d068810..fcdaa867b 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsController.h @@ -5,7 +5,7 @@ */ /*! - * When the content cards are updated, Appboy will post a notification through the NSNotificationCenter. + * When Content Cards are updated, Braze will post a notification through the NSNotificationCenter. * The name of the notification is the string constant referred to by ABKContentCardsProcessedNotification. The * userInfo dictionary associated with the notification will has one object, with key the same string * as ABKContentCardsProcessedIsSuccessfulKey, to indicate whether the update is successful or not. @@ -45,12 +45,12 @@ extern NSString *const ABKContentCardsProcessedIsSuccessfulKey; @property (readonly, getter=getContentCards) NSArray *contentCards; /*! - * The NSDate object that indicates the last time the contentCards property was updated from Appboy server. + * The NSDate object that indicates the last time the contentCards property was updated from Braze server. */ @property (readonly, nullable) NSDate *lastUpdate; /*! - * This method returns the number of currently active content cards which have not been viewed. + * Returns the count of unviewed cards, excluding control cards. * A "view" happens when a card becomes visible in the Content Cards view. This differentiates * between cards which are off-screen in the scrolling view, and those which * are on-screen; when a card scrolls onto the screen, it's counted as viewed. @@ -63,8 +63,8 @@ extern NSString *const ABKContentCardsProcessedIsSuccessfulKey; - (NSInteger)unviewedContentCardCount; /*! - * This method returns the total number of currently active content cards. Cards are - * counted only once even if they appear in multiple Content Cards views. + * Returns the count of available cards, including control cards. + * Cards are counted only once even if they appear in multiple Content Cards views. */ - (NSInteger)contentCardCount; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsTableViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsTableViewController.h index 4594653ba..752ca1a7b 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsTableViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsTableViewController.h @@ -9,8 +9,8 @@ /*! * UI elements which are used in the Content Cards table view. You can find them in the Content Cards Storyboard. */ -@property (strong, nonatomic) IBOutlet UIView *emptyFeedView; -@property (weak, nonatomic) IBOutlet UILabel *emptyFeedLabel; +@property (nonatomic, strong) IBOutlet UIView *emptyFeedView; +@property (nonatomic, strong) IBOutlet UILabel *emptyFeedLabel; /*! * The ABKContentCardsTableViewController delegate @@ -57,6 +57,8 @@ /*! * @discussion This method returns an instance of ABKContentCardsTableViewController. You can call it * to get a Content Cards view controller for your navigation controller. + * @warning To use a custom Content Card view controller, instantiate your own subclass instead + * (e.g. via alloc / init). */ + (instancetype)getNavigationContentCardsViewController; @@ -70,6 +72,35 @@ */ - (NSString *)localizedAppboyContentCardsString:(NSString *)key; +/*! + * @discussion initialization that always occurs for the Content Cards table view controller + */ +- (void)setUp; + +/*! + * @discussion Initialization that is in place of Storyboard or XIB initialization. + * This method should call all the property specific setUp methods. + */ +- (void)setUpUI; + +/*! + * @discussion specific view property initialization that is in place of Storyboard or XIB initialization. + * Called by the setUpUI method and is exposed here to allow overriding. + */ +- (void)setUpEmptyFeedLabel; +- (void)setUpEmptyFeedView; + +/*! + * @discussion Registers Content Card type identifiers with the cell classes + * that implement their view. + */ +- (void)registerTableViewCellClasses; + +/*! + * @discussion Given a Content Card, return its type identifier + */ +- (NSString *)findCellIdentifierWithCard:(ABKContentCard *)card; + /*! * @param tableView The table view which need the cell to diplay the card UI. * @param indexPath The index path of the card UI in the table view. @@ -78,7 +109,7 @@ * @discussion This method dequeues and returns the corresponding card cell based on card type from * the given table view. */ -+ (ABKBaseContentCardCell *)dequeueCellFromTableView:(UITableView *)tableView +- (ABKBaseContentCardCell *)dequeueCellFromTableView:(UITableView *)tableView forIndexPath:(NSIndexPath *)indexPath forCard:(ABKContentCard *)card; @@ -112,20 +143,20 @@ @optional /*! - * Asks the delegate if the Appboy SDK should handle the content card click action. + * Asks the delegate if the Braze SDK should handle the content card click action. * * @warning This method might not be called if you overrode handleCardClick: * * @param viewController The view controller displaying the content card. * @param url The content card's url. - * @return YES to let the Appboy SDK handle the click action, NO if you wish to handle the click action + * @return YES to let the Braze SDK handle the click action, NO if you wish to handle the click action * yourself. */ - (BOOL)contentCardTableViewController:(ABKContentCardsTableViewController *)viewController shouldHandleCardClick:(NSURL *)url; /*! - * Informs the delegate that the content card click action was handled by the Appboy SDK. + * Informs the delegate that the content card click action was handled by the Braze SDK. * * This method is not called if the delegate method `contentCardTableViewController:shouldHandleCardClick:` * returns NO. diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsViewController.h index c89c37fb3..dff255761 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKContentCardsViewController.h @@ -7,6 +7,6 @@ * This property is the table view controller which displays all the content cards. It's also the root view * controller. */ -@property (weak, nonatomic) ABKContentCardsTableViewController *contentCardsViewController; +@property (strong, nonatomic) ABKContentCardsTableViewController *contentCardsViewController; @end diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKControlTableViewCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKControlTableViewCell.h new file mode 100644 index 000000000..7f2ee7d23 --- /dev/null +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKControlTableViewCell.h @@ -0,0 +1,10 @@ +#import +#import "ABKBaseContentCardCell.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ABKControlTableViewCell : ABKBaseContentCardCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/objects-11.0+.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKControlTableViewCell.h.meta similarity index 74% rename from Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/objects-11.0+.nib.meta rename to Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKControlTableViewCell.h.meta index f2c9cb963..69e82b219 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/objects-11.0+.nib.meta +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKControlTableViewCell.h.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f7f97eb03980243c8b668dd338a55d46 +guid: 6ace2bbf904b44d5cac8c394e3de10d5 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKFeedController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKFeedController.h index ebaeaf621..2c55e6469 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKFeedController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKFeedController.h @@ -5,7 +5,7 @@ */ /*! - * When the news feed is updated, Appboy will post a notification through the NSNotificationCenter. + * When the news feed is updated, Braze will post a notification through the NSNotificationCenter. * The name of the notification is the string constant referred to by ABKFeedUpdatedNotification. The * userInfo dictionary associated with the notification will has one object, with key the same string * as ABKFeedUpdatedIsSuccessfulKey, to indicate whether the update is successful or not. @@ -55,14 +55,14 @@ typedef NS_OPTIONS(NSUInteger, ABKCardCategory) { @interface ABKFeedController : NSObject /*! - * The latest cards of Appboy news feed that is saved in memory and disk. Right now the available card types are ABKBannerCard, + * The latest cards of the Braze News Feed saved in memory and disk. Right now the available card types are ABKBannerCard, * ABKCaptionedImageCard, ABKClassicCard and ABKTextAnnouncementCard. They are all subclasses * of ABKCard. */ @property (readonly, getter=getNewsFeedCards) NSArray *newsFeedCards; /*! - * The NSDate object that indicates the last time the newsFeedCards property was updated from Appboy server. + * The NSDate object that indicates the last time the newsFeedCards property was updated from the Braze server. */ @property (readonly, nullable) NSDate *lastUpdate; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKImageDelegate.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKImageDelegate.h index 58d5d4203..500420483 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKImageDelegate.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKImageDelegate.h @@ -32,5 +32,11 @@ typedef NS_OPTIONS(NSUInteger, ABKImageOptions ) { - (nullable UIImage *)imageFromCacheForURL:(nullable NSURL *)url; +/*! + * @discussion Returns a class that is UIImageView or a subclass of UIImageView to allow the implementor to bring their own + * implementation of animated image support. + */ +- (Class)imageViewClass; + @end NS_ASSUME_NONNULL_END diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageController.h index caf6a5d20..bf993ed9d 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageController.h @@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN * in-app message. * * @discussion The default of this value is NO but can be overriden by setting the value of ABKEnableDismissModalOnOutsideTapKey in - * appboyOptions or in the Appboy dictionary in your Info.plist file. + * appboyOptions or in the Braze dictionary in your Info.plist file. */ @property BOOL enableDismissModalOnOutsideTap; @@ -43,7 +43,15 @@ NS_ASSUME_NONNULL_BEGIN * * If there are no in-app messages available this returns immediately having taken no action. */ -- (void)displayNextInAppMessageWithDelegate:(nullable id)delegate; +- (void)displayNextInAppMessageWithDelegate:(nullable id)delegate __deprecated_msg("Please use 'displayNextInAppMessage' instead."); + +/*! + * Displays the next in-app message from the in-app message stack. + * + * This method pops the next in-app message from the in-app message stack and tries to displays it. + * When defined, the current delegate methods are executed to respect any custom behavior. + */ +- (void)displayNextInAppMessage; /*! * @return The number of in-app messages that are locally waiting to be displayed. diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageControllerDelegate.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageControllerDelegate.h index 26a2a98eb..a557d65d2 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageControllerDelegate.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageControllerDelegate.h @@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN * - A in-app message is added by ABKInAppMessageController method addInAppMessage:. * * You can choose to manually display any in-app messages that are waiting locally to be displayed by calling: - * [[Appboy sharedInstance].inAppMessageController displayNextInAppMessageWithDelegate:]. + * [[Appboy sharedInstance].inAppMessageController displayNextInAppMessage]. */ typedef NS_ENUM(NSInteger, ABKInAppMessageDisplayChoice) { ABKDisplayInAppMessageNow, diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageImmersiveViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageImmersiveViewController.h index 6c221cf78..232beacd1 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageImmersiveViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageImmersiveViewController.h @@ -2,7 +2,7 @@ #import "ABKInAppMessageUIButton.h" // Customize this to set the font for the in-app message header. -#define HeaderLabelDefaultFont [UIFont boldSystemFontOfSize:20.0] +#define HeaderLabelDefaultFont [ABKUIUtils preferredFontForTextStyle:UIFontTextStyleTitle3 weight:UIFontWeightBold] NS_ASSUME_NONNULL_BEGIN @interface ABKInAppMessageImmersiveViewController : ABKInAppMessageViewController diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageModalViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageModalViewController.h index 5031ce967..85406cdb1 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageModalViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageModalViewController.h @@ -8,7 +8,7 @@ NS_ASSUME_NONNULL_BEGIN * in-app message. * * @discussion The default of this value is NO but can be overriden by setting the value of ABKEnableDismissModalOnOutsideTapKey in - * appboyOptions or in the Appboy dictionary in your Info.plist file. + * appboyOptions or in the Braze dictionary in your Info.plist file. */ @property (nonatomic, assign) BOOL enableDismissOnOutsideTap; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageSlideupViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageSlideupViewController.h index f89fbea5a..460366cee 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageSlideupViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageSlideupViewController.h @@ -9,9 +9,9 @@ NS_ASSUME_NONNULL_BEGIN @property (weak, nonatomic, nullable) IBOutlet UIImageView *arrowImage; /*! - * The constraint which controls the slideup in-app message animate in and out of the screen. + * The offset which controls the slideup in-app message vertical position once visible. */ -@property (weak, nonatomic, nullable) IBOutlet NSLayoutConstraint *slideConstraint; +@property (assign, nonatomic) CGFloat offset; @end NS_ASSUME_NONNULL_END diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageViewController.h index 04c0e5ef4..64e3f7e14 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKInAppMessageViewController.h @@ -2,7 +2,7 @@ #import "ABKInAppMessage.h" // Customize this to set the font for the in-app message message. -#define MessageLabelDefaultFont [UIFont systemFontOfSize:14.0] +#define MessageLabelDefaultFont [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline] static const CGFloat InAppMessageShadowBlurRadius = 4.0f; static const CGFloat InAppMessageShadowOpacity = 0.3f; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBannerCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBannerCardCell.h index de8ca54c7..3869f291b 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBannerCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBannerCardCell.h @@ -3,8 +3,13 @@ @interface ABKNFBannerCardCell : ABKNFBaseCardCell -@property (weak, nonatomic) IBOutlet SDAnimatedImageView *bannerImageView; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageRatioConstraint; +@property (nonatomic) IBOutlet UIImageView *bannerImageView; +@property (nonatomic) IBOutlet NSLayoutConstraint *imageRatioConstraint; + +/*! + * @discussion Programmatic initialization and layout of the banner imageView, exposed for customization. + */ +- (void)setUpBannerImageView; - (void)applyCard:(ABKCard *)bannerCard; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBaseCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBaseCardCell.h index 5f3a02de4..422fae096 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBaseCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFBaseCardCell.h @@ -8,29 +8,37 @@ @end +extern CGFloat ABKNFLabelHorizontalSpace; +extern CGFloat ABKNFLabelVerticalSpace; +extern CGFloat ABKNFTopSpace; + @interface ABKNFBaseCardCell : UITableViewCell ++ (UIColor *)ABKNFDescriptionLabelColor; ++ (UIColor *)ABKNFTitleLabelColor; ++ (UIColor *)ABKNFTitleLabelColorOnGray; + /*! * This view displays the card contents and is the base view container for each card. To change or * configure the outline of the card like card width, background color board width, etc, you can * update this property accordingly. */ -@property (weak, nonatomic) IBOutlet UIView *rootView; +@property (nonatomic) IBOutlet UIView *rootView; /*! * This is the triangle image which shows if a card has been viewed by the user. */ -@property (weak, nonatomic) IBOutlet UIImageView *unreadIndicatorView; +@property (nonatomic) IBOutlet UIImageView *unreadIndicatorView; -@property (weak, nonatomic) id delegate; +@property (nonatomic) id delegate; /*! * Card root view related constraints */ -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewLeadingConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewTrailingConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewTopConstraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rootViewBottomConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewLeadingConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewTrailingConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewTopConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *rootViewBottomConstraint; /*! * These are basic UI configuration for the News Feed. They are set to the default value in `setUp` @@ -43,16 +51,29 @@ @property (nonatomic) BOOL hideUnreadIndicator; /*! - * @param tableView The table view which need the cell to diplay the card UI. - * @param indexPath The index path of the card UI in the table view. - * @param card The card model for the cell. - * - * @discussion This method dequeues and returns the corresponding card cell based on card type from - * the given table view. + * @discussion Initialization of cell called even with storyboard/XIB, exposed for customization. + */ +- (void)setUp; + +/*! + * @discussion Programmatic initialization and layout cell, exposed for customization. + */ +- (void)setUpUI; + +/*! + * @discussion Programmatic initialization and layout of cell rootView, exposed for customization. */ -+ (ABKNFBaseCardCell *)dequeueCellFromTableView:(UITableView *)tableView - forIndexPath:(NSIndexPath *)indexPath - forCard:(ABKCard *)card; +- (void)setUpRootView; + +/*! + * @discussion Programmatic initialization and layout of cell border, exposed for customization. + */ +- (void)setUpRootViewBorder; + +/*! + * @discussion Programmatic initialization and layout of unread indicator image, exposed for customization. + */ +- (void)setUpUnreadIndicatorView; /*! * @param card The card model for the cell. @@ -65,4 +86,10 @@ * @discussion This is a utility method to return the place holder image. */ - (UIImage *)getPlaceHolderImage; + +/*! + * @discussion This is a utility method to return the image view class from the ABKImageDelegate. + */ +- (Class)imageViewClass; + @end diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFCaptionedMessageCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFCaptionedMessageCardCell.h index f06452490..c69fdc145 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFCaptionedMessageCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFCaptionedMessageCardCell.h @@ -4,13 +4,49 @@ @interface ABKNFCaptionedMessageCardCell : ABKNFBaseCardCell -@property (weak, nonatomic) IBOutlet SDAnimatedImageView *captionedImageView; -@property (weak, nonatomic) IBOutlet UILabel *titleLabel; -@property (weak, nonatomic) IBOutlet UILabel *descriptionLabel; -@property (weak, nonatomic) IBOutlet UIView *TitleBackgroundView; -@property (weak, nonatomic) IBOutlet UILabel *linkLabel; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageHeightContraint; -@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bodyAndLinkConstraint; +@property (class, nonatomic) UIColor *titleLabelColor; +@property (class, nonatomic) UIColor *descriptionLabelColor; +@property (class, nonatomic) UIColor *linkLabelColor; + +@property (nonatomic) IBOutlet UIImageView *captionedImageView; +@property (nonatomic) IBOutlet UILabel *titleLabel; +@property (nonatomic) IBOutlet UILabel *descriptionLabel; +@property (nonatomic) IBOutlet UIView *titleBackgroundView; +@property (nonatomic) IBOutlet UILabel *linkLabel; +@property (nonatomic) IBOutlet NSLayoutConstraint *imageHeightConstraint; +@property (nonatomic) IBOutlet NSLayoutConstraint *bodyAndLinkConstraint; + +/*! + * @discussion Programmatic initialization and layout of the title background view, grey bar that the title label is in. + * Exposed for customization. + */ +- (void)setUpTitleBackgroundView; + +/*! + * @discussion Programmatic initialization and layout of the title label. Exposed for customization. + */ +- (void)setUpTitleLabel; + +/*! + * @discussion Programmatic initialization and layout of the description label. Exposed for customization. + */ +- (void)setUpDescriptionLabel; + +/*! + * @discussion Programmatic initialization and layout of the link label. Exposed for customization. + */ +- (void)setUpLinkLabel; + +/*! + * @discussion Programmatic initialization and layout of image view. Exposed for customization. + */ +- (void)setUpCaptionedImageView; + +/*! + * @discussion Configures fonts of labels with dynamic type on supported versions of iOS uses older font style + * on earlier versions. Exposed for customization. + */ +- (void)setUpFonts; /*! * This method adjusts the bodyAndLinkConstraint and hides or shows the link label. diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFClassicCardCell.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFClassicCardCell.h index 64618c388..f41179e90 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFClassicCardCell.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNFClassicCardCell.h @@ -1,13 +1,42 @@ #import "ABKNFBaseCardCell.h" #import "ABKClassicCard.h" -#import @interface ABKNFClassicCardCell : ABKNFBaseCardCell -@property (weak, nonatomic) IBOutlet SDAnimatedImageView *classicImageView; -@property (weak, nonatomic) IBOutlet UILabel *titleLabel; -@property (weak, nonatomic) IBOutlet UILabel *descriptionLabel; -@property (weak, nonatomic) IBOutlet UILabel *linkLabel; +@property (class, nonatomic) UIColor *titleLabelColor; +@property (class, nonatomic) UIColor *descriptionLabelColor; +@property (class, nonatomic) UIColor *linkLabelColor; + +@property (nonatomic) IBOutlet UIImageView *classicImageView; +@property (nonatomic) IBOutlet UILabel *titleLabel; +@property (nonatomic) IBOutlet UILabel *descriptionLabel; +@property (nonatomic) IBOutlet UILabel *linkLabel; + +/*! + * @discussion Programmatic initialization and layout of image view. Exposed for customization. + */ +- (void)setUpClassicImageView; + +/*! + * @discussion Programmatic initialization and layout of the title label. Exposed for customization. + */ +- (void)setUpTitleLabel; + +/*! + * @discussion Programmatic initialization and layout of the description label. Exposed for customization. + */ +- (void)setUpDescriptionLabel; + +/*! + * @discussion Programmatic initialization and layout of the link label. Exposed for customization. + */ +- (void)setUpLinkLabel; + +/*! + * @discussion Configures fonts of labels with dynamic type on supported versions of iOS uses older font style + * on earlier versions. Exposed for customization. + */ +- (void)setUpFonts; - (void)applyCard:(ABKClassicCard *)classicCard; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedTableViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedTableViewController.h index 2b2998bbe..87a6fdf71 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedTableViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedTableViewController.h @@ -4,11 +4,39 @@ @interface ABKNewsFeedTableViewController : UITableViewController +/*! + * @discussion Initialization that is done for all ABKNewsFeedTableViewControllers with or without storyboard/XIB. + */ +- (void)setUp; + +/*! + * @discussion Initialization that is done for ABKNewsFeedTableViewControllers with programmatic layout only. + */ +- (void)setUpUI; + +/*! + * @discussion Registers Cell classes with the tableview, override this method when implementing custom + * cell classes to register the new subclasses. + */ +- (void)registerTableViewCellClasses; + +/*! + * @param tableView The table view which need the cell to diplay the card UI. + * @param indexPath The index path of the card UI in the table view. + * @param card The card model for the cell. + * + * @discussion This method dequeues and returns the corresponding card cell based on card type from + * the given table view. + */ +- (ABKNFBaseCardCell *)dequeueCellFromTableView:(UITableView *)tableView + forIndexPath:(NSIndexPath *)indexPath + forCard:(ABKCard *)card; + /*! * UI elements which are used in the News Feed table view. You can find them in the News Feed Card Storyboard. */ -@property (strong, nonatomic) IBOutlet UIView *emptyFeedView; -@property (unsafe_unretained, nonatomic) IBOutlet UILabel *emptyFeedLabel; +@property (nonatomic) IBOutlet UIView *emptyFeedView; +@property (nonatomic) IBOutlet UILabel *emptyFeedLabel; /*! * This property allows you to enable or disable the unread indicator on the news feed. The default @@ -48,9 +76,17 @@ /*! * @discussion This method returns an instance of ABKNewsFeedTableViewController. You can call it * to get a News Feed view controller for your navigation controller. + * @warning To use a custom News Feed view controller, instantiate your own subclass instead + * (e.g. via alloc / init). */ + (instancetype)getNavigationFeedViewController; + /*! + * @discussion Given a content card return the type identifier for the above + * registration. + */ + - (NSString *)findCellIdentifierWithCard:(ABKCard *)card; + /*! * @discussion This method returns the localized string from AppboyFeedLocalizable.strings file. * You can easily override the localized string by adding the keys and the translations to your own diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedViewController.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedViewController.h index bb355e7bf..6eac761b1 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedViewController.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKNewsFeedViewController.h @@ -7,6 +7,6 @@ * This property is the table view controller which displays all the cards. It's also the root view * controller. */ -@property (unsafe_unretained, nonatomic) ABKNewsFeedTableViewController *newsFeed; +@property (nonatomic) ABKNewsFeedTableViewController *newsFeed; @end diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSDWebImageProxy.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSDWebImageProxy.h index a76bb89c6..7e388eee2 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSDWebImageProxy.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSDWebImageProxy.h @@ -17,7 +17,6 @@ static NSString *const CORE_VERSION_WARNING = @"Attempting to download image but withURL:(nullable NSURL *)imageURL imagePlaceHolder:(nullable UIImage *)placeHolder completed:(nullable void (^)(UIImage * _Nullable image, NSError * _Nullable error, NSInteger cacheType, NSURL * _Nullable imageURL))completion; -+ (void)prefetchURLs:(nullable NSArray *)imageURLs; + (void)loadImageWithURL:(nullable NSURL *)url options:(NSInteger)options completed:(nullable void(^)(UIImage *image, NSData *data, NSError *error, NSInteger cacheType, BOOL finished, NSURL *imageURL))completion; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationDelegate.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationDelegate.h new file mode 100644 index 000000000..17d58b155 --- /dev/null +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationDelegate.h @@ -0,0 +1,25 @@ +#import +#import "ABKSdkAuthenticationError.h" + +/* + * Braze Public API: ABKSdkAuthenticationDelegate + */ +NS_ASSUME_NONNULL_BEGIN + +@protocol ABKSdkAuthenticationDelegate + +/*! + * This method is fired when an SDK Authentication error is returned by the server, for example, if + * the signature is expired or invalid. + * + * You are responsible for providing the Braze SDK a valid signature when this delegate method is + * called. + * SDK requests will retry periodically using an exponential backoff approach. After 50 consecutive + * failed attempts, retries will be paused until the next session start. + * + * @param authError The SDK Authentication error returned by the server + */ +- (void)handleSdkAuthenticationError:(ABKSdkAuthenticationError *)authError; + +@end +NS_ASSUME_NONNULL_END diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/runtime.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationDelegate.h.meta similarity index 74% rename from Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/runtime.nib.meta rename to Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationDelegate.h.meta index a055df370..c90c87d23 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsViewController.nib/runtime.nib.meta +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationDelegate.h.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 97b9ceb5815fb43a5bdc8e31506a0e33 +guid: c1b3d2571b608466684a37080dabecc0 DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationError.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationError.h new file mode 100644 index 000000000..ac37d4ed9 --- /dev/null +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationError.h @@ -0,0 +1,35 @@ +#import + +/* + * Braze Public API: ABKSdkAuthenticationError + */ +NS_ASSUME_NONNULL_BEGIN +@interface ABKSdkAuthenticationError : NSObject + +/*! + * The error code for the SDK Authentication failure. + */ +@property (readonly) NSInteger code; + +/*! + * The reason for the SDK Authentication failure. + */ +@property (nullable, readonly) NSString *reason; + +/*! + * The user ID associated with the request that failed due to SDK Authentication failure. + */ +@property (nullable, readonly) NSString *userId; + +/*! + * The signature that was sent with the request that failed due to SDK Authentication failure. + */ +@property (readonly) NSString *signature; + +- (instancetype)initWithCode:(NSInteger)code + reason:(NSString *)reason + userId:(NSString *)userId + signature:(NSString *)signature; + +@end +NS_ASSUME_NONNULL_END diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/runtime.nib.meta b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationError.h.meta similarity index 74% rename from Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/runtime.nib.meta rename to Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationError.h.meta index ca2f9231d..36015ee70 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/AppboyUI.ContentCards.bundle/ABKContentCardsStoryboard.storyboardc/ABKContentCardsTableViewController.nib/runtime.nib.meta +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKSdkAuthenticationError.h.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a62dd94f9ab1e4fc9b522b3d04211665 +guid: 691897218fddb4333919919a0af59cfd DefaultImporter: externalObjects: {} userData: diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIURLUtils.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIURLUtils.h index 3eb6e05b7..0ee582966 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIURLUtils.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIURLUtils.h @@ -10,7 +10,6 @@ withExtras:(NSDictionary *)extras; + (BOOL)URL:(NSURL *)url shouldOpenInWebView:(BOOL)openUrlInWebView; + (void)openURLWithSystem:(NSURL *)url; -+ (void)openURLWithSystem:(NSURL *)url fromChannel:(ABKChannel)channel; + (UIViewController *)topmostViewControllerWithRootViewController:(UIViewController *)viewController; + (void)displayModalWebViewWithURL:(NSURL *)url topmostViewController:(UIViewController *)topmostViewController; diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIUtils.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIUtils.h index f8d3d19cd..7d53283db 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIUtils.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUIUtils.h @@ -2,6 +2,8 @@ #import #import "Appboy.h" +#define ABK_CGFLT_EQ(lhs, rhs) (fabs(lhs - rhs) < 10 * FLT_EPSILON * fabs(lhs + rhs)) + @interface ABKUIUtils : NSObject /*! @@ -38,13 +40,13 @@ */ + (NSBundle *)bundle:(Class)bundleClass channel:(ABKChannel)channel; ++ (UIImage *)imageNamed:(NSString *)name bundle:(Class)bundleClass channel:(ABKChannel)channel; + + (NSString *)getLocalizedString:(NSString *)key inAppboyBundle:(NSBundle *)appboyBundle table:(NSString *)table; + (BOOL)objectIsValidAndNotEmpty:(id)object; + (Class)getModalFeedViewControllerClass; + (BOOL)isNotchedPhone; -+ (UIImage *)getImageWithName:(NSString *)name - type:(NSString *)type - inAppboyBundle:(NSBundle *)appboyBundle; + + (UIInterfaceOrientation)getInterfaceOrientation; + (CGSize)getStatusBarSize; + (UIColor *)dynamicColorForLightColor:(UIColor *)lightColor @@ -67,4 +69,26 @@ */ + (BOOL)responderChainOf:(UIResponder *)responder hasClassPrefixedWith:(NSString *)prefix; +/*! + * Creates an instance of the font associated with the text style and scaled appropriately for the + * user's selected content size category. + * + * @warning On iOS 10 / tvOS 10 and below, this method does not apply the text style to the + * resulting font. The font size is chosen according to https://apple.co/3snncd9 (Large / Default). + * + * @param textStyle The text style to use + * @param weight The weight of the font + * @return The font corresponding to the text style with weight applied to it. + */ ++ (UIFont *)preferredFontForTextStyle:(UIFontTextStyle)textStyle weight:(UIFontWeight)weight; + +/*! + * Enables `adjustsFontForContentSizeCategory` on the label if available (iOS 10+). + * + * This method has no effect on iOS / tvOS versions prior to 10.0. + * + * @param label Any object conforming to `UIContentSizeCategoryAdjusting` + */ ++ (void)enableAdjustsFontForContentSizeCategory:(id)label; + @end diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUser.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUser.h index 8145a6612..2f42267f0 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUser.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/ABKUser.h @@ -94,7 +94,7 @@ typedef NS_ENUM(NSInteger, ABKNotificationSubscriptionType) { */ @property (nonatomic, copy, nullable) NSString *phone; -@property (nonatomic, copy, readonly) NSString *userID; +@property (nonatomic, copy, nullable, readonly) NSString *userID; /*! * The User's avatar image URL. This URL will be processed by the server and used in their user profile on the diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy-iOS-SDK-umbrella.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy-iOS-SDK-umbrella.h index 31fee7429..6321c99b8 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy-iOS-SDK-umbrella.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy-iOS-SDK-umbrella.h @@ -19,6 +19,7 @@ #import "ABKCaptionedImageContentCardCell.h" #import "ABKClassicContentCardCell.h" #import "ABKClassicImageContentCardCell.h" +#import "ABKControlTableViewCell.h" #import "ABKSDWebImageImageDelegate.h" #import "ABKUIURLUtils.h" #import "ABKUIUtils.h" @@ -57,6 +58,8 @@ #import "ABKModalWebViewController.h" #import "ABKNoConnectionLocalization.h" #import "ABKPushUtils.h" +#import "ABKSdkAuthenticationDelegate.h" +#import "ABKSdkAuthenticationError.h" #import "ABKSDWebImageProxy.h" #import "ABKTextAnnouncementCard.h" #import "ABKTwitterUser.h" diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy.h index 376407882..1179bf641 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/Appboy.h @@ -13,7 +13,7 @@ #import #ifndef APPBOY_SDK_VERSION -#define APPBOY_SDK_VERSION @"3.31.2" +#define APPBOY_SDK_VERSION @"4.3.2" #endif #if !TARGET_OS_TV @@ -30,6 +30,7 @@ @protocol ABKIDFADelegate; @protocol ABKURLDelegate; @protocol ABKImageDelegate; +@protocol ABKSdkAuthenticationDelegate; NS_ASSUME_NONNULL_BEGIN /* ------------------------------------------------------------------------------------------------------ @@ -107,6 +108,18 @@ extern NSString *const ABKInAppMessageControllerDelegateKey; */ extern NSString *const ABKEnableDismissModalOnOutsideTapKey; +/*! + * This key can be set YES or NO and will configure whether the SDK Authentication feature is enabled. + */ +extern NSString *const ABKEnableSDKAuthenticationKey; + +/*! + * This key can can be set to an instance of a class that conforms to the ABKSdkAuthenticationDelegate protocol, allowing it to handle + * SDK Authentication errors. Setting this delegate will cause the delegate method `handleSdkAuthenticationError:` to get called in + * the event of an SDK Authentication error. + */ +extern NSString *const ABKSdkAuthenticationDelegateKey; + /*! * Set the time interval for session time out (in seconds). This will affect the case when user has a session shorter than * the set time interval. In that case, the session won't be close even though the user closed the app, but will continue until @@ -160,7 +173,7 @@ extern NSString *const ABKPushStoryAppGroupKey; * ABKAutomaticRequestProcessingExceptForDataFlush - Deprecated. Use ABKManualRequestProcessing. * ABKManualRequestProcessing - The same as ABKAutomaticRequestProcessing, except that updates to * custom attributes and triggering of custom events will not automatically flush to the server. Instead, you - * must call flushDataAndProcessRequestQueue when you want to synchronize newly updated user data with Braze. Note that + * must call requestImmediateDataFlush when you want to synchronize newly updated user data with Braze. Note that * the configuration does not turn off all networking, i.e. requests important to the proper functionality of the Braze * SDK will still occur. * @@ -215,9 +228,7 @@ typedef NS_ENUM(NSInteger, ABKChannel) { ABKInAppMessageChannel, ABKNewsFeedChannel, ABKContentCardChannel, - - // Note: Compatibility value for old internal APIs - ABKUnknownChannel + ABKUnknownChannel __deprecated_enum_msg("ABKUnknownChannel will be removed in a future update.") }; /* @@ -295,7 +306,7 @@ typedef NS_ENUM(NSInteger, ABKChannel) { * * Setting the request policy does not automatically cause a flush to occur, it just allows for a flush to be scheduled * the next time an eligible request is enqueued. To force an immediate flush after changing the request processing -* policy, invoke
[[Appboy sharedInstance] flushDataAndProcessRequestQueue]
. +* policy, invoke
[[Appboy sharedInstance] requestImmediateDataFlush]
. */ @property ABKRequestProcessingPolicy requestProcessingPolicy; @@ -304,6 +315,11 @@ typedef NS_ENUM(NSInteger, ABKChannel) { */ @property (nonatomic, strong, nullable) id idfaDelegate; +/*! + * A class conforming to ABKSdkAuthenticationDelegate can be set to handle SDK Authentication errors. + */ +@property (nonatomic, strong, nullable) id sdkAuthenticationDelegate; + #if !TARGET_OS_TV /*! * The current in-app message manager. @@ -346,7 +362,9 @@ typedef NS_ENUM(NSInteger, ABKChannel) { * If you're using ABKManualRequestProcessing, you only need to call this when you want to force * an immediate flush of updated user data. */ -- (void)flushDataAndProcessRequestQueue; +- (void)requestImmediateDataFlush; + +- (void)flushDataAndProcessRequestQueue __deprecated_msg("Please use `requestImmediateDataFlush` instead."); /*! * Stops all in flight server communication and enables manual request processing control to ensure that no automatic @@ -395,6 +413,28 @@ typedef NS_ENUM(NSInteger, ABKChannel) { */ - (void)changeUser:(NSString *)userId; +/*! + * @param userId The new user's ID (from the host application) + * @param signature The SDK Authentication signature for the user being identified. + * + * @discussion See documantation for `changeUser:` above + */ +- (void)changeUser:(NSString *)userId sdkAuthSignature:(nullable NSString *)signature; + +/*! + * @param signature The SDK Authentication signature for the current user + * + * @discussion Sets the signature used for SDK authentication for the current user. + */ +- (void)setSdkAuthenticationSignature:(NSString *)signature; + +/*! + * @discussion Unsubscribe from SDK Authentication errors. After this method is called, + * the ABKSdkAuthenticationDelegate method `handleSdkAuthenticationError:` will not be called in the event of + * an SDK Authentication error. + */ +- (void)unsubscribeFromSdkAuthenticationErrors; + /*! * @param eventName The name of the event to log. * @@ -412,8 +452,8 @@ typedef NS_ENUM(NSInteger, ABKChannel) { /*! * @param eventName The name of the event to log. * @param properties An NSDictionary of properties to associate with this purchase. Property keys are non-empty NSString objects with - * <= 255 characters and no leading dollar signs. Property values can be NSNumber booleans, integers, floats < 62 bits, NSDate objects or - * NSString objects with <= 255 characters. + * <= 255 characters and no leading dollar signs. Property values can be NSNumber booleans, integers, floats < 62 bits, NSDate objects, + * NSString objects with <= 255 characters, or any JSON Encodable object including NSArray and NSDictionary of the previous data types (nested properties). Total length of encoded properties must be under 50 KB. * * @discussion Adds an app specific event to event tracking log that's lazily pushed up to the server. Think of * events like counters. That is, each time you log an event, we'll update a counter for that user. Events should be @@ -452,14 +492,14 @@ typedef NS_ENUM(NSInteger, ABKChannel) { * who have access to the NSLocale object for the purchase in question (which can be obtained from SKProduct listings * provided by StoreKit) can obtain the currency code by invoking: *
[locale objectForKey:NSLocaleCurrencyCode]
- * Supported currency symbols include: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, - * BMD, BND, BOB, BRL, BSD, BTC, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, - * DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, - * IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, - * LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MTL, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, - * NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, - * STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XAG, - * XAU, XCD, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW and ZWL. Any other provided currency symbol will result in a logged + * Supported currency symbols include: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, + * BMD, BND, BOB, BRL, BSD, BTC, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, + * DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, + * IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, + * LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MTL, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, + * NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, + * STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XAG, + * XAU, XCD, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW and ZWL. Any other provided currency symbol will result in a logged * warning and no other action taken by the SDK. * @param price Prices should be reported as NSDecimalNumber objects. Base units are treated the same as with SKProduct * from StoreKit and depend on the currency. As an example, USD should be reported as Dollars.Cents, whereas JPY should @@ -577,13 +617,13 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(nullable void (^)(void))completionHandler NS_AVAILABLE_IOS(10_0); /*! - * @param pushAuthGranted The boolean value passed in from completionHandler in UNUserNotificationCenter's + * @param pushAuthGranted The boolean value passed in from completionHandler in UNUserNotificationCenter's * requestAuthorizationWithOptions:completionHandler: method, which indicates if the push authorization * was granted or not. * * @discussion This method forwards the push authorization result to Braze after the user interacts with * the notification prompt. - * Call it from the UNUserNotificationCenter's requestAuthorizationWithOptions:completionHandler: method + * Call it from the UNUserNotificationCenter's requestAuthorizationWithOptions:completionHandler: method * when you prompt users to enable push. */ - (void)pushAuthorizationFromUserNotificationCenter:(BOOL)pushAuthGranted; @@ -597,10 +637,13 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response /*! * @discussion This method immediately wipes all data from the Braze iOS SDK. After this method is * called, the sharedInstance singleton will be nulled out and Braze functionality will be disabled - * until the next call to startWithApiKey:. All references to the previous singleton should be - * released. + * until the next call to startWithApiKey: in a subsequent app run. All references to the previous + * singleton should be released. + * + * Note that the next call to startWithApiKey: must take place in a subsequent app run. Initializing the SDK + * within the same app run after calling this method is not supported. * - * The SDK will automatically re-enable itself when startWithApiKey: is next called. There is + * The SDK will automatically re-enable itself when startWithApiKey: is called. There is * no need to call requestEnableSDKOnNextAppRun: to re-enable the SDK. wipeDataAndDisableForAppRun: * may be used at any time, including while the SDK is otherwise disabled. * @@ -613,8 +656,11 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response /*! * @discussion This method immediately disables the Braze iOS SDK. After this method is called, the * sharedInstance singleton will be nulled out and Braze functionality will be disabled until the - * SDK is re-enabled via requestEnableSDKOnNextAppRun: and a subsequent call to startWithApiKey:. - * All references to the previous singleton should be released. + * SDK is re-enabled via a call to requestEnableSDKOnNextAppRun: and re-initialized in a subsequent + * app run via a call to startWithApiKey:. All references to the previous singleton should be released. + * + * Note that the next call to startWithApiKey: must take place in a subsequent app run. Initializing the SDK + * within the same app run after calling this method is not supported. * * Unlike with wipeDataAndDisableForAppRun:, calling requestEnableSDKOnNextAppRun: is required to * re-enable the SDK after the method is called. diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/AppboyKit.h b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/AppboyKit.h index 9d534fd06..d0b20ccd6 100644 --- a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/AppboyKit.h +++ b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Headers/AppboyKit.h @@ -17,6 +17,10 @@ #import "ABKCaptionedImageContentCard.h" #import "ABKClassicContentCard.h" +// SDK Authentication +#import "ABKSdkAuthenticationError.h" +#import "ABKSdkAuthenticationDelegate.h" + #if !TARGET_OS_TV // In-app Message #import "ABKInAppMessage.h" @@ -57,4 +61,7 @@ #import "ABKURLDelegate.h" #import "ABKPushUtils.h" +#import "ABKModalWebViewController.h" +#import "ABKNoConnectionLocalization.h" + #endif diff --git a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Info.plist b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Info.plist index e5db279b1..7d8745a70 100644 Binary files a/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Info.plist and b/Assets/Plugins/iOS/Appboy_iOS_SDK.framework/Info.plist differ diff --git a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageCacheConfig.h b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageCacheConfig.h index 4d6e79b0b..f2d19203d 100644 --- a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageCacheConfig.h +++ b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageCacheConfig.h @@ -67,6 +67,12 @@ typedef NS_ENUM(NSUInteger, SDImageCacheConfigExpireType) { */ @property (assign, nonatomic) BOOL shouldRemoveExpiredDataWhenEnterBackground; +/** + * Whether or not to remove the expired disk data when application been terminated. This operation is processed in sync to ensure clean up. + * Defaults to YES. + */ +@property (assign, nonatomic) BOOL shouldRemoveExpiredDataWhenTerminate; + /** * The reading options while reading cache from disk. * Defaults to 0. You can set this to `NSDataReadingMappedIfSafe` to improve performance. diff --git a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageLoader.h b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageLoader.h index 25f1af40e..addad836e 100644 --- a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageLoader.h +++ b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDImageLoader.h @@ -9,6 +9,7 @@ #import "SDWebImageCompat.h" #import "SDWebImageDefine.h" #import "SDWebImageOperation.h" +#import "SDImageCoder.h" typedef void(^SDImageLoaderProgressBlock)(NSInteger receivedSize, NSInteger expectedSize, NSURL * _Nullable targetURL); typedef void(^SDImageLoaderCompletedBlock)(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished); @@ -50,6 +51,18 @@ FOUNDATION_EXPORT UIImage * _Nullable SDImageLoaderDecodeImageData(NSData * _Non */ FOUNDATION_EXPORT UIImage * _Nullable SDImageLoaderDecodeProgressiveImageData(NSData * _Nonnull imageData, NSURL * _Nonnull imageURL, BOOL finished, id _Nonnull operation, SDWebImageOptions options, SDWebImageContext * _Nullable context); +/** + This function get the progressive decoder for current loading operation. If no progressive decoding is happended or decoder is not able to construct, return nil. + @return The progressive decoder associated with the loading operation. + */ +FOUNDATION_EXPORT id _Nullable SDImageLoaderGetProgressiveCoder(id _Nonnull operation); + +/** + This function set the progressive decoder for current loading operation. If no progressive decoding is happended, pass nil. + @param operation The loading operation to associate the progerssive decoder. + */ +FOUNDATION_EXPORT void SDImageLoaderSetProgressiveCoder(id _Nonnull operation, id _Nullable progressiveCoder); + #pragma mark - SDImageLoader /** diff --git a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDefine.h b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDefine.h index 43df0464d..83a2d186e 100644 --- a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDefine.h +++ b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDefine.h @@ -275,18 +275,23 @@ FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextStoreC /** The same behavior like `SDWebImageContextQueryCacheType`, but control the query cache type for the original image when you use image transformer feature. This allows the detail control of cache query for these two images. For example, if you want to query the transformed image from both memory/disk cache, query the original image from disk cache only, use `[.queryCacheType : .all, .originalQueryCacheType : .disk]` - If not provide or the value is invalid, we will use `SDImageCacheTypeNone`, which does not query the original image from cache. (NSNumber) + If not provide or the value is invalid, we will use `SDImageCacheTypeDisk`, which query the original full image data from disk cache after transformed image cache miss. This is suitable for most common cases to avoid re-downloading the full data for different transform variants. (NSNumber) @note Which means, if you set this value to not be `.none`, we will query the original image from cache, then do transform with transformer, instead of actual downloading, which can save bandwidth usage. */ FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextOriginalQueryCacheType; /** The same behavior like `SDWebImageContextStoreCacheType`, but control the store cache type for the original image when you use image transformer feature. This allows the detail control of cache storage for these two images. For example, if you want to store the transformed image into both memory/disk cache, store the original image into disk cache only, use `[.storeCacheType : .all, .originalStoreCacheType : .disk]` - If not provide or the value is invalid, we will use `SDImageCacheTypeNone`, which does not store the original image into cache. (NSNumber) + If not provide or the value is invalid, we will use `SDImageCacheTypeDisk`, which store the original full image data into disk cache after storing the transformed image. This is suitable for most common cases to avoid re-downloading the full data for different transform variants. (NSNumber) @note This only store the original image, if you want to use the original image without downloading in next query, specify `SDWebImageContextOriginalQueryCacheType` as well. */ FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextOriginalStoreCacheType; +/** + A id instance which conforms to `SDImageCache` protocol. It's used to control the cache for original image when using the transformer. If you provide one, the original image (full size image) will query and write from that cache instance instead, the transformed image will query and write from the default `SDWebImageContextImageCache` instead. (id) + */ +FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextOriginalImageCache; + /** A Class object which the instance is a `UIImage/NSImage` subclass and adopt `SDAnimatedImage` protocol. We will call `initWithData:scale:options:` to create the instance (or `initWithAnimatedCoder:scale:` when using progressive download) . If the instance create failed, fallback to normal `UIImage/NSImage`. This can be used to improve animated images rendering performance (especially memory usage on big animated images) with `SDAnimatedImageView` (Class). diff --git a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDownloaderOperation.h b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDownloaderOperation.h index 7f073b778..5fc192890 100644 --- a/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDownloaderOperation.h +++ b/Assets/Plugins/iOS/SDWebImage.framework/Headers/SDWebImageDownloaderOperation.h @@ -128,7 +128,7 @@ context:(nullable SDWebImageContext *)context NS_DESIGNATED_INITIALIZER; /** - * Adds handlers for progress and completion. Returns a tokent that can be passed to -cancel: to cancel this set of + * Adds handlers for progress and completion. Returns a token that can be passed to -cancel: to cancel this set of * callbacks. * * @param progressBlock the block executed when a new chunk of data arrives. diff --git a/Assets/Plugins/iOS/SDWebImage.framework/Info.plist b/Assets/Plugins/iOS/SDWebImage.framework/Info.plist index 2e6c82a1b..09c52a6e3 100644 Binary files a/Assets/Plugins/iOS/SDWebImage.framework/Info.plist and b/Assets/Plugins/iOS/SDWebImage.framework/Info.plist differ diff --git a/Assets/Plugins/iOS/SDWebImage.framework/PrivateHeaders/SDInternalMacros.h b/Assets/Plugins/iOS/SDWebImage.framework/PrivateHeaders/SDInternalMacros.h index 8589a74e9..dfff55850 100644 --- a/Assets/Plugins/iOS/SDWebImage.framework/PrivateHeaders/SDInternalMacros.h +++ b/Assets/Plugins/iOS/SDWebImage.framework/PrivateHeaders/SDInternalMacros.h @@ -26,6 +26,15 @@ OSSpinLock lock##_deprecated; #endif #endif +#ifndef SD_LOCK_DECLARE_STATIC +#if SD_USE_OS_UNFAIR_LOCK +#define SD_LOCK_DECLARE_STATIC(lock) static os_unfair_lock lock +#else +#define SD_LOCK_DECLARE_STATIC(lock) static os_unfair_lock lock API_AVAILABLE(ios(10.0), tvos(10), watchos(3), macos(10.12)); \ +static OSSpinLock lock##_deprecated; +#endif +#endif + #ifndef SD_LOCK_INIT #if SD_USE_OS_UNFAIR_LOCK #define SD_LOCK_INIT(lock) lock = OS_UNFAIR_LOCK_INIT diff --git a/Assets/Plugins/iOS/SDWebImage.framework/SDWebImage b/Assets/Plugins/iOS/SDWebImage.framework/SDWebImage index 80d8572d1..2290e7a60 100755 Binary files a/Assets/Plugins/iOS/SDWebImage.framework/SDWebImage and b/Assets/Plugins/iOS/SDWebImage.framework/SDWebImage differ diff --git a/CHANGELOG.md b/CHANGELOG.md index cfa78f9f4..176922440 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 3.5.0 + +##### Breaking +- Updated the Android plugin to use Braze Android SDK 15.0.0. + +##### Changed +- Updated the native iOS bridge to [Braze iOS SDK 4.3.2](https://github.com/Appboy/appboy-ios-sdk/releases/tag/4.3.2). + ## 3.4.0 ##### Added