diff --git a/ios/Classes/FreshchatSDK/FCLocalization.bundle/en.lproj/FCLocalizable.strings b/ios/Classes/FreshchatSDK/FCLocalization.bundle/en.lproj/FCLocalizable.strings new file mode 100644 index 0000000..9705233 --- /dev/null +++ b/ios/Classes/FreshchatSDK/FCLocalization.bundle/en.lproj/FCLocalizable.strings @@ -0,0 +1,146 @@ +/* + Localizable.strings + Freshchat + + Copyright (c) 2015 Freshdesk. All rights reserved. +*/ + +/* Solution Categories*/ +"faq_title_text"="FAQs"; +"faq_close_button_text"="Close"; +"contact_us_button_text"="Message Us"; +"faq_feature_not_enabled_text"="FAQ feature is disabled"; + +/* Article UpVote DownVote */ +"article_vote_prompt_text"="Was this FAQ helpful?"; +"article_vote_prompt_yes_button_text"="Yes"; +"article_vote_prompt_no_button_text"="No"; + +/* Article Vote thank you prompt */ +"thank_you_prompt_text"="Thanks for your feedback!"; +"thank_you_prompt_contact_us_button_text"="Still looking for help? Talk to us"; + +/* Article Detail */ +"offline_missing_content_text"="Please connect to the internet to view media content available on this article."; + +/* JWT */ +"jwt_failure_alert_message" = "Oops! Something went wrong. Please relaunch the screen."; + +/* No Internet Connectivity */ +"offline_internet_message"="Uh-uh. No internet connection"; + +/*Channels*/ +"channels_title_text"="Conversations"; +"channels_close_button_text"="Close"; +"channels_feature_not_enabled_text"="Conversation feature is disabled"; + +/*Restoring view*/ +"restore_close_button_text"="Close"; + +/* Message UI */ +"message_placeholder_text" = "Type a message"; +"messages_close_button_text"="Close"; +"send_button_text"="Send"; +"messages_agent_label_text"="Support"; +"default_action_button_text"="View"; +"default_video_button_text"="Watch Video"; +"default_file_button_text"="Open File"; + + +"audio_message_title"="Audio message"; +"picture_message_title"="Image"; +"picture_message_upload_error"="Error loading image. Image not found"; + +"audio_recording"="Audio Recording"; +"audio_recording_stopped"="Recording Stopped"; +"audio_recording_permission_denied"="Permission missing. Please enable Microphone permission under Settings."; + +"cancel_audio_recording_alert"="Are you sure you want to cancel recording?"; + +"message_unsent_title"="Your message was not sent"; +"message_unsent_info_text"="We were unable to send your message(s) at this time. Check internet or try again later"; +"server_error_info_text"="Problem sending message. Please try again later."; + +/* Account delete messages for actions*/ +"error_message_account_not_active_text" = "This section is no longer available"; +"error_message_account_not_active_cancel" = "Cancel"; + +/*Unsupported message content */ +"message_unsupported_content" = "Unsupported message content"; + +/* Posting audio message alerts */ +"short_audio_alert_title" = "Your message is too short."; +"short_audio_alert_description_text" = "The audio recording is too short. Please try again"; +"long_audio_alert_title" = "Too long don't you think?"; +"long_audio_alert_description_text" = "Your audio message is more than 2 minutes long. Sure you want to send?"; +"long_audio_alert_post_button_text" = "Send it"; + +/* Search View Place Holder */ +"search_placeholder_text"="Search FAQs"; +"search_empty_result_text"="Whoops! We couldn't find what you were looking for."; +"empty_channel_text" = "Oops, no messages here!"; +"empty_faq_text" = "Sorry! There are no FAQs available"; +"loading_channel_text" = "Loading Messages"; +"restoring_channel_text" = "Restoring Messages"; +"loading_faq_text" = "Loading FAQs"; + +/* Camera Unavailable alert */ +"camera_unavailable_title"="Your camera is unavailable"; +"camera_unavailable_description"="Oopsie! Your device doesn't have a camera or the camera is not available for use"; +"camera_unavailable_ok_button_text"="OK"; +"camera_permission_denied" ="Camera permissions is required to capture pictures"; +"photo_library_permission_denied" ="Photo library permission is required access photos"; +"camera_permission_alert_cancel" ="Cancel"; +"photo_library_permission_alert_cancel" ="Cancel"; + +/* Picture attached*/ +"pic_msg_attachment_close_btn"="Back"; +"pic_msg_attachment_title_text"="Picture"; + +/*Image Attachment*/ +"image_attachment_cancel_button_text"="Cancel"; +"image_attachment_select_existing_image"="Upload from gallery"; +"image_attachment_select_new_image"="Take a picture"; + + +/*Notifications*/ +"notification_message_default"="You've got a message!"; + +/* Customer Satisfaction Survey */ + +/* Yes No Prompt */ +"chat_resolution_prompt_text"="Were all your concerns addressed? "; +"chat_resolution_prompt_yes_button_text"="Yes!"; +"chat_resolution_prompt_no_button_text"="No"; + +"chat_resolution_survey_question_text"=""; + +/* Survey prompt */ +"cust_sat_not_resolved_prompt"="How could we have helped you better?"; +"cust_sat_user_comments_placeholder"="Additional feedback"; +"cust_sat_submit_button_text"="Send"; + +/* Message time format */ +"chat_message_time_today"="hh:mm a"; +"chat_message_time_this_year_short"="MMM dd"; +"chat_message_time_this_year_long"="MMM dd',' hh:mm a"; +"chat_message_time_other_year"="MMM YYYY"; + +/* Typically replies */ +"typically_replies_within_a_minute"="Typically replies within a minute"; +"typically_replies_within_x_minutes"="Typically replies within"; +"typically_replies_within_an_hour"="Typically replies within an hour"; +"typically_replies_within_2_hours"="Typically replies within 2 hours"; +"typically_replies_within_few_hours"="Typically replies within few hours"; + +"placeholder_minutes"="minutes"; + +/*Average replies */ +"currently_replying_in_a_minute" = "Currently replying in a minute"; +"currently_replying_in_x_minutes"="Currently replying in"; +"currently_replying_in_an_hour"="Currently replying in an hour"; +"currently_replying_in_2_hours"="Currently replying in 2 hours"; +"currently_replying_in_few_hours"="Currently replying in few hours"; + +/*Business hour offline response */ +"business_hour_offline"="We are away now"; diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon.png new file mode 100644 index 0000000..38abf3e Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon@2x.png new file mode 100644 index 0000000..5d33005 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon@3x.png new file mode 100644 index 0000000..7fbb027 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_agent_avatar_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_max_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_max_icon.png new file mode 100644 index 0000000..0fd47aa Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_max_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_max_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_max_icon@2x.png new file mode 100644 index 0000000..8706bc4 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_max_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_min_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_min_icon.png new file mode 100644 index 0000000..a959670 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_min_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_min_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_min_icon@2x.png new file mode 100644 index 0000000..a6062e0 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_audio_progess_min_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon.png new file mode 100644 index 0000000..5ae1ec2 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon@2x.png new file mode 100644 index 0000000..209984c Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon@3x.png new file mode 100644 index 0000000..5dd44fd Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_back_button_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon.png new file mode 100644 index 0000000..ba1183d Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon@2x.png new file mode 100644 index 0000000..186fc82 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon@3x.png new file mode 100644 index 0000000..fd2aaf1 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_cancel_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image.png new file mode 100644 index 0000000..c79a4fb Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image@2x.png new file mode 100644 index 0000000..c79a4fb Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image@3x.png new file mode 100644 index 0000000..90cd508 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_channels_image@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_chat_bubble_left.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_chat_bubble_left.png new file mode 100644 index 0000000..2d11772 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_chat_bubble_left.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_chat_bubble_right.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_chat_bubble_right.png new file mode 100644 index 0000000..baa36f1 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_chat_bubble_right.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview.png new file mode 100644 index 0000000..16df660 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview@2x.png new file mode 100644 index 0000000..339d266 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview@3x.png new file mode 100644 index 0000000..da70e1a Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_close_image_preview@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon.png new file mode 100644 index 0000000..b20a4f3 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon@2x.png new file mode 100644 index 0000000..0bf16bf Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon@3x.png new file mode 100644 index 0000000..3cb61f9 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@1x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@1x.png new file mode 100644 index 0000000..e850fd3 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@1x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@2x.png new file mode 100644 index 0000000..8294652 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@3x.png new file mode 100644 index 0000000..04e7c25 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_contact_us_light_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_conv_bg.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_conv_bg.png new file mode 100644 index 0000000..90b0514 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_conv_bg.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon.png new file mode 100644 index 0000000..e773c3b Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon@2x.png new file mode 100644 index 0000000..3ad48ae Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon@3x.png new file mode 100644 index 0000000..ffc981f Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_empty_search_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image.png new file mode 100644 index 0000000..212861b Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image@2x.png new file mode 100644 index 0000000..212861b Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image@3x.png new file mode 100644 index 0000000..a4a789f Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_faq_image@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder.png new file mode 100644 index 0000000..8c3507f Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder@2x.png new file mode 100644 index 0000000..bbdcd1d Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder@3x.png new file mode 100644 index 0000000..a18decb Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_image_placeholder@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon.png new file mode 100644 index 0000000..4c1616b Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon@2x.png new file mode 100644 index 0000000..7152658 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon@3x.png new file mode 100644 index 0000000..90586e7 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_mic_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon.png new file mode 100644 index 0000000..126d44b Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon@2x.png new file mode 100644 index 0000000..ca89318 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon@3x.png new file mode 100644 index 0000000..fb35c88 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_notification_cancel_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon.png new file mode 100644 index 0000000..01dfdb5 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon@2x.png new file mode 100644 index 0000000..8d02925 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon@3x.png new file mode 100644 index 0000000..2e6c185 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_play_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon.png new file mode 100755 index 0000000..4350eef Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon@2x.png new file mode 100755 index 0000000..7ca9ae5 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon@3x.png new file mode 100755 index 0000000..055592d Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_right_arrow_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon.png new file mode 100644 index 0000000..c6fa264 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon@2x.png new file mode 100644 index 0000000..1815429 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon@3x.png new file mode 100644 index 0000000..e52db87 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_search_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon.png new file mode 100644 index 0000000..d9d509f Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon@2x.png new file mode 100644 index 0000000..44caea1 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon@3x.png new file mode 100644 index 0000000..accc6d5 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_send_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon.png new file mode 100644 index 0000000..f10d101 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon@2x.png new file mode 100644 index 0000000..be288b5 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon@3x.png new file mode 100644 index 0000000..38bd3e0 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sending_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon.png new file mode 100644 index 0000000..ed80b56 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon@2x.png new file mode 100644 index 0000000..4da3901 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon@3x.png new file mode 100644 index 0000000..5b087ac Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_sent_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon.png new file mode 100644 index 0000000..97183ae Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon@2x.png new file mode 100644 index 0000000..3893b63 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon@3x.png new file mode 100644 index 0000000..ea2845e Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_stop_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon.png new file mode 100644 index 0000000..8ad40ff Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon@2x.png new file mode 100644 index 0000000..bfcdefa Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon@3x.png new file mode 100644 index 0000000..c44c58c Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_unsupported_content_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon.png new file mode 100644 index 0000000..a50672d Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon@2x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon@2x.png new file mode 100644 index 0000000..254b0c1 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon@2x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon@3x.png b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon@3x.png new file mode 100644 index 0000000..8c31d0f Binary files /dev/null and b/ios/Classes/FreshchatSDK/FCResources.bundle/Images/freshchat_upload_icon@3x.png differ diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Themes/FCTheme.plist b/ios/Classes/FreshchatSDK/FCResources.bundle/Themes/FCTheme.plist new file mode 100644 index 0000000..669e7b2 --- /dev/null +++ b/ios/Classes/FreshchatSDK/FCResources.bundle/Themes/FCTheme.plist @@ -0,0 +1,696 @@ + + + + + ConversationDetail + + AttachIcon + FCResources.bundle/Images/freshchat_upload_icon + ChatBubbleRight + FCResources.bundle/Images/freshchat_chat_bubble_right + ChatBubbleLeft + FCResources.bundle/Images/freshchat_chat_bubble_left + CancelIcon + FCResources.bundle/Images/freshchat_cancel_icon + TeamMemberAvatarIcon + + SendIcon + FCResources.bundle/Images/freshchat_send_icon + RecordIcon + FCResources.bundle/Images/freshchat_mic_icon + TeamMemberAvatarStyle + + visible + + + TeamMemberNameTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 13.0f + textColor + #000000 + + TeamMemberMessageTextStyle + + textColorLink + #2283F6 + fontName + Arial + textSize + 15.0f + textColor + #000000 + textAlignment + + + TeamMemberMessageTimeTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 11.0f + textColor + #000000 + + UserMessageTextStyle + + textColorLink + #2283F6 + fontName + Arial + textSize + 15.0f + textColor + #000000 + textAlignment + + + UserMessageTimeTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 11.0f + textColor + #000000 + + MessageButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #000000 + borderColor + #000000 + background + #FFFFFF + selectedColor + #000000 + + MessageReplyInputViewStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #000000 + textColorHint + #D3D3D3 + textCursorColor + #808285 + borderColor + #FFFFFF + background + #FFFFFF + buttonColor + #000000 + + MessageReplyViewStyle + + background + #FFFFFF + dividerColor + #B3B3B3 + + FallbackMessageStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + + borderColor + + background + #FFFFFF + + CustomerSurveyDialogStyle + + background + #F7F7F7 + dividerColor + #B3B3B3 + + CustomerSurveyRatingBarStyle + + foreground + #0BA4DB + + CustomerSurveyQuestionTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 13.0f + textColor + #000000 + + CustomerSurveyCommentsInputViewStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 13.0f + textColor + #000000 + borderColor + #808285 + + CustomerSurveySubmitButtonTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #378CF8 + background + #F7F7F7 + + ChatResolutionPromptTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #1D2129 + + ChatResolutionPromptViewStyle + + background + #FFFFFF + + ChatResolutionNegativeButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #535353 + background + #F6F6F5 + borderColor + #808285 + + ChatResolutionPositiveButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #FFFFFF + background + #007AFF + borderColor + #808285 + + BackButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 16.0f + textColor + #000000 + + ConversationBannerMessageStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #FFFFFF + background + #34AADC + + MessagePadding + + UserMessageLeft + 10 + UserMessageRight + 8 + UserMessageTop + 8 + UserMessageBottom + 8 + AgentMessageLeft + 8 + AgentMessageRight + 8 + AgentMessageTop + 8 + AgentMessageBottom + 8 + + MessageListStyle + + background + FCResources.bundle/Images/freshchat_conv_bg + + ChatBubbleInsets + + AgentBubbleTop + 10 + AgentBubbleLeft + 10 + AgentBubbleBottom + 10 + AgentBubbleRight + 10 + UserBubbleTop + 10 + UserBubbleLeft + 10 + UserBubbleBottom + 10 + UserBubbleRight + 10 + + UnsupportedContentTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 10.0f + textColor + #8D96A5 + background + #FFFFFF + borderColor + #F2F3F5 + icon + FCResources.bundle/Images/freshchat_unsupported_content_icon + + QuickReplyStyle + + background + #FFFFFF + fontName + Arial + textSize + 15.0f + textColor + #FFFFFF + cellBackground + #0380fc + cornerRadius + 10 + cellPadding + 10 + rowPadding + 10 + maxHeightPercentage + 35 + + + ChannelList + + ChannelNameTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #222222 + + ChannelDescriptionTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #ABABAB + maxLines + 1 + + ChannelLastUpdatedAtTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 12.0f + textColor + #ABABAB + + ChannelUnreadCountTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 13.0f + textColor + #FFFFFF + background + #3399FF + + ChannelAltIconStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 22.0f + background + #3F51B5 + + ChannelListStyle + + background + #F8FAFA + dividerColor + #DE4147 + + ChannelListItemStyle + + backgroundSelected + #DCDCDC + background + #FFFFFF + + ChannelListEmptyTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #525454 + + + NavigationBar + + TitleTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 17.0f + textColor + #000000 + + ActionButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 16.0f + textColor + #0079FF + + NavigationBarStyle + + background + #F8F8F8 + + SubTitleTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textColor + #6D6D6D + + + FAQDetail + + FAQUpvoteButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #FFFFFF + background + #007AFF + borderColor + #D8D8D8 + + FAQDownvoteButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #535353 + background + #F6F6F5 + borderColor + #C1C1BF + + FAQVotingPromptViewStyle + + background + #F6F6F5 + + FAQVotingPromptTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #535353 + + + Notification + + TitleTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #EFEFEF + + BodyTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #EFEFEF + + IconStyle + + borderColor + #FFFFFF + background + #3F51B5 + + NotificationStyle + + background + #6D6D6D + + NotificationCancel + FCResources.bundle/Images/freshchat_notification_cancel_icon + ShowPushPrompt + + + Miscellaneous + + DefaultGlobalFont + SYS_DEFAULT_FONT_NAME + ContactUsTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #FFFFFF + background + #4D90E9 + + StatusBarStyle + + StatusBarBackground + UIStatusBarStyleDefault + + ImagePreviewStyle + + background + #000000 + + ProgressBarStyle + + progressBarColor + #6D6D6D + + + SearchBar + + CancelButtonStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #0079FF + + SearchQueryTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 13.0f + textColor + #000000 + textColorHint + #808285 + borderColor + #FFFFFF + textCursorColor + #0079FF + background + #FFFFFF + + SearchBarStyle + + background + #F8F8F8 + searchIcon + + clearIcon + + + + FAQList + + FAQListStyle + + background + #F8FAFA + + FAQListItemStyle + + background + #FFFFFF + backgroundSelected + #C9C9CA + dividerColor + #C9C9CA + + FAQTitleTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #000000 + + FAQListEmptyTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #525454 + + + FAQCategoryList + + FAQCategoryNameTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 15.0f + textColor + #222222 + + FAQCategoryDescriptionTextStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 14.0f + textColor + #808285 + maxLines + 1 + + FAQCategoryListStyle + + background + #FFFFFF + + FAQCategoryAltIconStyle + + fontName + SYS_DEFAULT_FONT_NAME + textSize + 22.0f + background + #535353 + + FAQCategoryListItemStyle + + background + #FFFFFF + backgroundSelected + #DCDCDC + dividerColor + #C9C9CA + borderColor + #9A9B9E + + + Images + + NotificationCancel + FCResources.bundle/Images/freshchat_notification_cancel_icon + SearchIcon + FCResources.bundle/Images/freshchat_search_icon + ContactUsIcon + FCResources.bundle/Images/freshchat_contact_us_icon + ContactUsLightIcon + FCResources.bundle/Images/freshchat_contact_us_light_icon + BackButton + FCResources.bundle/Images/freshchat_back_button_icon + MessageSending + FCResources.bundle/Images/freshchat_sending_icon + MessageSent + FCResources.bundle/Images/freshchat_sent_icon + ImageMessagePlaceholder + FCResources.bundle/Images/freshchat_image_placeholder + AudioMessagePlayButton + FCResources.bundle/Images/freshchat_play_icon + AudioMessageStopButton + FCResources.bundle/Images/freshchat_stop_icon + AudioProgessBarMin + FCResources.bundle/Images/freshchat_audio_progess_min_icon + AudioProgessBarMax + FCResources.bundle/Images/freshchat_audio_progess_max_icon + TableViewAccessoryIcon + FCResources.bundle/Images/freshchat_right_arrow_icon + EmptySearchImage + FCResources.bundle/Images/freshchat_empty_search_icon + CloseImagePreview + FCResources.bundle/Images/freshchat_close_image_preview + ChannelImage + FCResources.bundle/Images/freshchat_channels_image + FAQImage + FCResources.bundle/Images/freshchat_faq_image + CloseButton + + + + diff --git a/ios/Classes/FreshchatSDK/FCResources.bundle/Themes/normalize.css b/ios/Classes/FreshchatSDK/FCResources.bundle/Themes/normalize.css new file mode 100644 index 0000000..be5171a --- /dev/null +++ b/ios/Classes/FreshchatSDK/FCResources.bundle/Themes/normalize.css @@ -0,0 +1,304 @@ +/*! normalize.css v2.0.1 | MIT License | git.io/normalize */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects `block` display not defined in IE 8/9. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section, +summary { + display: block; +} + +/* + * Corrects `inline-block` display not defined in IE 8/9. + */ + +audio, +canvas, +video { + display: inline-block; +} + +/* + * Prevents modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/* + * Addresses styling for `hidden` attribute not present in IE 8/9. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/* + * 1. Sets default font family to sans-serif. + * 2. Prevents iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: HelveticaNeue, sans-serif; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/* + * Removes default margin. + */ + +body { + margin: 0; + padding: 12px 12px 100px 12px; + line-height: 26px; +} + +a:focus { + outline: thin dotted; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/* + * Addresses `h1` font sizes within `section` and `article` + */ + +h1 { + font-size: 2em; +} + +h2{ + font-family: HelveticaNeue-CondensedBold; + font-size: 1.5em; + line-height: 32px; +} + + +/* + * Corrects font family for code blocks + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +/* + * Improves readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* + * Sets consistent quote types. + */ + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +/* + * Addresses inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/* + * Prevents `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +img { + border: 2px solid #AAAAAA; + box-shadow: 0 0 6px rgba(0,0,0,0.3); + max-width: 100%; + height:auto; +} + + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/* + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/* + * 1. Corrects color not being inherited in IE 8/9. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/* + * 1. Corrects font family not being inherited in all browsers. + * 2. Corrects font size not being inherited in all browsers. + * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome + */ + +button, +input, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 2 */ + margin: 0; /* 3 */ +} + +/* + * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/* + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Corrects inability to style clickable `input` types in iOS. + * 3. Improves usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/* + * Re-set default cursor for disabled elements. + */ + +button[disabled], +input[disabled] { + cursor: default; +} + +/* + * 1. Addresses box sizing set to `content-box` in IE 8/9. + * 2. Removes excess padding in IE 8/9. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/* + * 1. Removes default vertical scrollbar in IE 8/9. + * 2. Improves readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +iframe { + max-width:100%; + height: auto; +} + +.article-title { + background-color : #ffffff; + color : #000000; + padding-left:5px; + padding-right:5px; +} + +.article-body { + padding-left: 5px; + padding-right: 5px; +} + +.offline-article-message { + background-color : #ffffcc; + color : #000000; + font-size : 1em; +} + +a { + color : #0000FF !important; +} diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 1.mom b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 1.mom new file mode 100644 index 0000000..317e700 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 1.mom differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 2.mom b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 2.mom new file mode 100644 index 0000000..2bf6770 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 2.mom differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 3.mom b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 3.mom new file mode 100644 index 0000000..77ccd8c Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 3.mom differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 4.mom b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 4.mom new file mode 100644 index 0000000..ca77188 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 4.mom differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 5.mom b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 5.mom new file mode 100644 index 0000000..281ee3a Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 5.mom differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 5.omo b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 5.omo new file mode 100644 index 0000000..756cbe7 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel 5.omo differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel.mom b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel.mom new file mode 100644 index 0000000..03821d7 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/FreshchatModel.mom differ diff --git a/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/VersionInfo.plist b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/VersionInfo.plist new file mode 100644 index 0000000..2536fa6 Binary files /dev/null and b/ios/Classes/FreshchatSDK/FreshchatModels.bundle/FreshchatModel.momd/VersionInfo.plist differ diff --git a/ios/Classes/FreshchatSDK/FreshchatSDK.h b/ios/Classes/FreshchatSDK/FreshchatSDK.h new file mode 100644 index 0000000..6f696c9 --- /dev/null +++ b/ios/Classes/FreshchatSDK/FreshchatSDK.h @@ -0,0 +1,607 @@ +// +// Freshchat.h +// +// +// Copyright (c) 2017 Freshworks. All rights reserved. +// +// Contact support@freshchat.com + +#import +#import + +/* + * Enum for FAQ filter type + */ +enum TagFilterType { + ARTICLE = 1, + CATEGORY = 2 +}; + +/* + * Events Enum for freshchat screen + */ +typedef enum { + FCEventFAQCategoryListOpen, + FCEventFAQListOpen, + FCEventFAQOpen, + FCEventFAQSearch, + FCEventFAQVote, + FCEventChannelListOpen, + FCEventMessageSent, + FCEventConversationOpen, + FCEventCSatOpen, + FCEventCSatSubmit, + FCEventCSatExpiry, + FCEventLinkTap, + FCEventScreenView, + FCEventMessageReceive, + FCEventNotificationReceive, + FCEventIdTokenStatusChange +} FCEvent; + +/* + * Parameter enums for events + */ +typedef enum { + FCPropertyFAQCategoryID, + FCPropertyFAQCategoryName, + FCPropertyFAQID, + FCPropertyFAQTitle, + FCPropertySearchKey, + FCPropertySearchFAQCount, + FCPropertyChannelID, + FCPropertyChannelName, + FCPropertyConversationID, + FCPropertyIsHelpful, + FCPropertyIsRelevant, + FCPropertyInputTags, + FCPropertyRating, + FCPropertyResolutionStatus, + FCPropertyComment, + FCPropertyURL +} FCEventProperty; + + +#define FRESHCHAT_DID_FINISH_PLAYING_AUDIO_MESSAGE @"com.freshworks.freshchat_play_inapp_audio" +#define FRESHCHAT_WILL_PLAY_AUDIO_MESSAGE @"com.freshworks.freshchat_pause_inapp_audio" +#define FRESHCHAT_USER_RESTORE_ID_GENERATED @"com.freshworks.freshchat_user_restore_id_generated" +#define FRESHCHAT_USER_LOCALE_CHANGED @"com.freshworks.freshchat_user_locale_changed" +#define FRESHCHAT_UNREAD_MESSAGE_COUNT_CHANGED @"com.freshworks.freshchat_unread_message_count_changed" +#define FRESHCHAT_EVENTS @"com.freshworks.freshchat_events" + +@class FreshchatConfig, FreshchatUser, FAQOptions, ConversationOptions, FreshchatMessage; + +@interface FreshchatConfig : NSObject + +/* + * App ID of your App. This is used to identify the SDK for your app to freshchat.com. + * Please see API & App under Settings ( https://web.freshchat.com/settings/apisdk ) to get your App ID. + */ +@property (strong, nonatomic) NSString *appID; +/* + * App Key of your App. This is used to authenticate the SDK for your app to freshchat.io. + * Please see API & App under Settings ( https://web.freshchat.com/settings/apisdk ) to get your App Key. + */ +@property (strong, nonatomic) NSString *appKey; +/* + * Domain for freshchat. Do not change this. + */ +@property (strong, nonatomic) NSString *domain; +/** + * Option to supply the SDK with your theme file's name. Make sure themeName is the same as the + * theme plist file's name. Freshchat needs this for theming to work. + * The setter throws an exception for an invalid filename + */ +@property (nonatomic, strong) NSString *themeName; +/** + * Option to supply the SDK with a strings bundle for localization + */ +@property (nonatomic, strong) NSString *stringsBundle; +/* + * Allow the user to attach images using the gallery. Defaults to YES. + */ +@property (nonatomic, assign) BOOL gallerySelectionEnabled; +/* + * Allow the user to attach images using the camera. Defaults to YES. + */ +@property (nonatomic, assign) BOOL cameraCaptureEnabled; +/* + * Enable alert sound when a notification is received. Defaults to YES. + */ +@property (nonatomic, assign) BOOL notificationSoundEnabled; +/* + * Show/Hide Agent Avatar on the Chat. It is enabled by default. Default YES + */ +@property (nonatomic, assign) BOOL teamMemberInfoVisible; +/* + * Enable/Disable Notification banner when a support message is received. Defaults to YES + */ +@property (nonatomic, assign) BOOL showNotificationBanner; +/* + * Show/Hide Channel response time on the chat. Defaults to YES + */ +@property (nonatomic, assign) BOOL responseExpectationVisible; + +/** + * Initialize Freshchat. + * + * @discussion In order to initialize Freshchat, you'll need the App ID and App Key. Place the Freshchat initialization code in your app delegate, preferably at the top of the application:didFinishLaunchingWithOptions method. + * + * @param appID The App ID assigned to your app when it was created on the portal. + * @param appKey The App Key assigned to your app when it was created on the portal. + * + */ +-(instancetype)initWithAppID:(NSString*)appID andAppKey:(NSString*)appKey; + +@end + +@interface Freshchat : NSObject + +@property(nonatomic, strong, readonly) FreshchatConfig *config; + ++(NSString *)SDKVersion; + +/** + * Access the Freshchat instance. + * + * @discussion Using the returned shared instance, you can access all the instance methods available in Freshchat. + */ ++(instancetype) sharedInstance; + +/** + * Initialize configuration for Config. + * + * @param config Freshchat Configuration of type FreshchatConfig + */ + +-(void)initWithConfig:(FreshchatConfig *)config; + +/** + * Show the Conversations / Chat to the user. + * + * @discussion This method lets you launch and present the Channels list to the user. The user directly lands in the Conversation view if there is only one channel. + * + * @param controller The view controller from where you present the Conversations view. + * + */ +-(void)showConversations:(UIViewController *)controller; + +/** + * Show the Conversations / Chat to the user. + * + * @param options filter by tags + * + * @discussion This method lets you launch and present the Channels list to the user. The user directly lands in the default Conversation view if no channels found. + * + */ +-(void)showConversations:(UIViewController *)controller withOptions :(ConversationOptions *)options; + +/** + * Show the FAQs to the user. + * + * @discussion This method lets you show the FAQ view. + * + * @param controller The view controller from where you present the FAQ view. + * + */ +-(void)showFAQs:(UIViewController *)controller; + +/** + * Show the FAQs to the user. + * + * @discussion This method lets you show the FAQ view. + * + * @param controller The view controller from where you present the FAQ view. + * + * @param options filter by tags or control FAQ screen options + * + */ +-(void)showFAQs:(UIViewController *)controller withOptions:(FAQOptions *)options; + +/** + * Set user Info + * + * @discussion Sends user information updates to the server. User properties such as Name, Email, Phone, Country Code and external Identifier.That are set will be synced with the server. External Identifier provided could be any unique value that your App can use to identify the user. + * + * @param user User instance with the values to be updated. + * + */ +-(void)setUser:(FreshchatUser *) user; + +/** + * Get user Alias + * + * @discussion This method lets you to get user Id in Strict Mode for setting up JWT paload + * + */ +- (NSString *) getFreshchatUserId; + +/* + * Set user for JWT Auth strict mode + * + * Sync any change to user information, specified in JWT Token with Freshchat + * + */ +- (void)setUserWithIdToken :(NSString *) jwtIdToken; + +/* + * In Auth Strict Mode get status of User Auth Token + */ +- (NSString *)getUserIdTokenStatus; + +/** +* Restore User +* + * @discussion To identify an user in Freshchat with an unique identifier from your system and restore an + * user across devices/sessions/platforms based on an external identifier and restore id +* +* @param externalID Set an identifier that your app can use to uniquely identify the user +* +* @param restoreID Set the restore id for the user, to lookup and restore the user across devices/sessions/platforms +* +*/ +-(void)identifyUserWithExternalID:(NSString *) externalID restoreID:(NSString *) restoreID; + +/** + * Identify and restore an user base on reference_id and can only be called in auth strict mode + * + * @param jwtIdToken Set a valid Id Token for the current user signed with your account key(s) + * + */ +-(void)restoreUserWithIdToken:(NSString *) jwtIdToken; + +/** + * Clear User Data + * + * @discussion Use this function when your user needs to log out of the app . + * This will clean up all the data associated with the SDK for the user. + * Please use the completion block if you are updating user information or subsequently calling init + * + * @param Completion block to be called when clearData is completed + * + */ +-(void)resetUserWithCompletion:(void (^)())completion; +/** + * Set User properties + * + * @discussion Tag users with custom properties (key-value pairs) . The user properties associated here will be shown on the dashboard for the agent and also be used for segmentation for campaigns + * + * @param props An NSDictionary containing the Properties for the User. + * + */ +-(void)setUserProperties:(NSDictionary*)props; +/** + * Set user property + * + * @discussion Use this method to update a single property for the user. Use updateUserProperties instead where possible. + * + * @param key Property name + * + * @param value Property value + * + */ +-(void)setUserPropertyforKey:(NSString *) key withValue:(NSString *)value; +/** + * Update the APNS device token + * + * @discussion Update the APNS device token when APNS registration is successful. The SDK uses this to send push notification when there are replies from the agent. + * + * @param deviceToken APNS device token + * + */ +-(void)setPushRegistrationToken:(NSData *) deviceToken; +/** + * Open Freshchat Deeplink + * + * @discussion Handle freshchat channels,faq deeplink and present in viewController + * + * @param linkStr Freshchat Deeplink String + * + * @param viewController present Freshchat Screen from above the view Controller + * + */ +-(void) openFreshchatDeeplink:(NSString *)linkStr viewController:(UIViewController *) viewController; +/** + * Check if a push notification was from Freshchat + * + * @discussion Checks if the push notification received originated from Freshchat by examining the payload dictionary. Use this in conjunction with handleRemoteNotification + * + * @param info NSDictionary object in didReceiveRemoteNotification for Push Notification. + */ +-(BOOL)isFreshchatNotification:(NSDictionary *)info; +/** + * Handle the Freshchat push notifications + * + * @discussion Needs to be called when a push notification is received from Freshchat. This will present the conversation if user tapped on a push, or show a drop down notification, or update a currently active conversation screen depending on context. + * + * @param info Dictionary received in didReceiveRemoteNotification for Push Notification. + * + * @param appState UIApplicationState object that helps the app be aware of whether it was already active and in the foreground when receiving the push notification, or was opened from the background + */ +-(void)handleRemoteNotification:(NSDictionary *)info andAppstate:(UIApplicationState)appState; +/** + * Get an embeddable controller for FAQs + * + * @discussion Return a controller with FAQs View that can be embedded in other Controllers (e.g. in a UITabBarController ) + * + * @return UIController for FAQs View + */ +-(UIViewController*) getFAQsControllerForEmbed; +/** + * Get an embeddable controller for FAQs with filter options + * + * @discussion Return a controller with Conversation view that can be embedded in other Controllers (e.g. in a UITabBarController ) + * + * @return UIController for FAQs filter View + * + */ +-(UIViewController*) getFAQsControllerForEmbedWithOptions:(FAQOptions *) faqOptions; +/** + * Get an embeddable controller for Conversations + * + * @discussion Return a controller with Conversation view that can be embedded in other Controllers (e.g. in a UITabBarController ) + * + * @return UIController for Conversation View + * + */ +-(UIViewController*) getConversationsControllerForEmbed; +/** + * Get an embeddable controller for Conversations with filter options + * + * @discussion Return a controller with Conversation view that can be embedded in other Controllers (e.g. in a UITabBarController ) + * + * @return UIController for Conversation filter View + * + */ +-(UIViewController*) getConversationsControllerForEmbedWithOptions:(ConversationOptions *) convOptions; + +/** + * Get the unread conversations count. + * + * @discussion This method lets you asynchronously fetch the latest count of conversations that require the user's attention. It is updated with a 2 min interval. + * + * @param completion Completion block with count. + * + */ +-(void)unreadCountWithCompletion:(void(^)(NSInteger count))completion; + +/** + * Get the unread conversations count. + * + * @discussion This method lets you asynchronously fetch the latest count of conversations that require the user's attention. It is updated with a 2 min interval. + * + * @param tags Tags of channels for which unread count is required. + * @param completion Completion block with count. + * + */ +-(void)unreadCountForTags:(NSArray *)tags withCompletion:(void(^)(NSInteger count))completion; + +/** + * Show custom banner for users in message screen + */ +-(void)updateConversationBannerMessage:(NSString *)message; + +/** + * Send message to particular channel with specified tag value + */ +-(void) sendMessage:(FreshchatMessage *)messageObject; + +/** + * Dismiss SDK for deeplink screens + */ +-(void) dismissFreshchatViews; + +/** + * Code block for handling links. Return 'YES' to override default link behaviour and 'NO' to handle it on the block itself. + */ + +@property (nonatomic, copy) BOOL(^customLinkHandler)(NSURL*); + +/** + * Code block for push notification tap events . Return 'YES' to not allow channel open and 'NO' to launch the coresponding channel. + */ + +@property (nonatomic, copy) BOOL(^onNotificationClicked)(NSString*); + +@end + + +@interface FreshchatUser : NSObject + +/* + * User first name + */ +@property (strong, nonatomic) NSString *firstName; +/* + * User last name + */ +@property (strong, nonatomic) NSString *lastName; +/* + * User email + */ +@property (strong, nonatomic) NSString *email; +/* + * Phone Number - Preferably Mobile Number + */ +@property (strong, nonatomic) NSString *phoneNumber; +/* + * Phone Country Code e.g +91 for India + */ +@property (strong, nonatomic) NSString *phoneCountryCode; +/* + * Unique identifier for the user. + */ +@property (strong, nonatomic, readonly) NSString *externalID; +/* + * Restore id for user + */ +@property (strong, nonatomic, readonly) NSString *restoreID; + +/* + * Access the user info. If update user was called earlier, the instance would contain the persisted values. + */ ++(instancetype)sharedInstance; + +@end + +@interface FreshchatOptions : NSObject + +@end + +@interface FAQOptions : FreshchatOptions + +/* + * Option to Switch between Grid and List view in FAQs. Shows FAQ categories as a list when set to NO. + * Default set to YES which presents a Grid view + */ +@property (nonatomic) BOOL showFaqCategoriesAsGrid; +/* + * Option to show "contact us" button on the FAQ Screens, + * Default set to YES which shows "contact us" button + */ +@property (nonatomic) BOOL showContactUsOnFaqScreens; +/* + * Option to show "contact us" button on the navigation bar, + * Default set to NO which hides "contact us" button on the navigation bar + */ +@property (nonatomic) BOOL showContactUsOnAppBar; +/* + * Option to show conversation link on article rating bar for Negative response, + * Default set to YES which shows conversation link there + */ +@property (nonatomic) BOOL showContactUsOnFaqNotHelpful; +/** + * @discussion This method lets you to filter the list of Categories or Articles by tags + * + * @param Array of tags to filter by. Tags can be configured in the portal + * + * @param Title for the list of filtered view + * + * @param Type can be either Category or Article determining what to show. ( list of filtered articles or categories) + */ +-(void) filterByTags:(NSArray *) tags withTitle:(NSString *) title andType : (enum TagFilterType) type; + +/** + * @discussion This method lets you to filter the list of Channels by tags when user clicks on contact us + * + * @param Array of tags to filter the channels list + * + * @param Title for the list of filtered channels view + */ +-(void)filterContactUsByTags:(NSArray *) tags withTitle:(NSString *) title; + +/** + * Preferred navigation bar title + */ +-(NSString *)filteredViewTitle; + +/** + * List of tags you have supplied already + * + * @discussion List of tags which are configured in portal + */ +-(NSArray *)tags; + +/** + * Tags Filter type - FAQ's or Articles tags + */ +-(enum TagFilterType) filteredType; + +/** + * Tags used to filter channels when clicking on "Contact Us" on FAQ screens + */ +-(NSArray *) contactUsTags; + +/** + * Title for the list of filtered channels view which clicking "Contact Us" + */ +-(NSString *) contactUsTitle; + +@end + + +@interface ConversationOptions : FreshchatOptions + +/** + * Show Filtered Channels + * + * @discussion This method lets you to launch and present a controller with the list of Channels filtered by the tags + * + * @param Array of tags to filter the channels list + * + * @param Title for the list of filtered channels view + * + */ +-(void)filterByTags:(NSArray *)tags withTitle:(NSString *)title; + +/** + * Preferred navigation bar title for filtered view of channels + */ +-(NSString *)filteredViewTitle; + +/** + * Tags used for filtering the channels list + */ +-(NSArray *)tags; + +@end + +/** + * Events handling with Freshchat + */ +@interface FreshchatEvent: NSObject + +/** + * Event name for Freshchat screen + */ +@property (nonatomic, assign) FCEvent name; + +/* + * Parameter dictionary for a Freshchat screen's event + */ +@property (strong, nonatomic) NSDictionary *properties; + +/** + * Freshchat screens's event value + * + * @discussion this method lets you to get value for a Freshchat event property + * + * @param Enum parameter key for event + * + */ +- (id) valueForEventProperty : (FCEventProperty) property; + + +/** + * Freshchat screen's event name in String + * + * @discussion this method lets you to get string value of the Freshchat event + * + */ +- (NSString *) getEventName; + +@end + +@interface FreshchatMessage : NSObject + +/** + * Message text to be sent + */ +@property (strong, nonatomic) NSString *message; + +/** + * Tag of the channel on which the message needs to be sent + * If tag does not match with any channel it is sent on the default channel + */ +@property (strong, nonatomic) NSString *tag; + +/** + * Initialize the message object + * + * @param Message text to send to agent + * + * @param Tag of the channel on which the message needs to be sent + */ +-(instancetype)initWithMessage:(NSString *)message andTag:(NSString *)tag; + +@end diff --git a/ios/Classes/FreshchatSDK/LICENSE b/ios/Classes/FreshchatSDK/LICENSE new file mode 100644 index 0000000..22898b8 --- /dev/null +++ b/ios/Classes/FreshchatSDK/LICENSE @@ -0,0 +1,53 @@ +Freshchat SDK License Agreement +———————————————————————————— +This Freshchat SDK License Agreement (“Agreement”) governs the use of Freshchat SDK, source codes, materials and the accompanying documentation (together, Freshchat SDK”) and Your relationship between Freshworks, Inc. (and where applicable, its successors and assigns) and its Affiliates (together, Freshworks) +By either downloading or using the Freshchat SDK, You represent on behalf of Yourself and, if applicable, others (together, “You” or “Your”) that You agree to the terms of this Agreement. If You do not agree to all of the terms herein, do not download or use the Freshchat SDK. + +Grant of Licenses +———————————————————————————— +Use of Freshchat SDK: Conditioned upon Your compliance with this Agreement, Freshworks hereby grants You a limited, worldwide, non-transferable, non-exclusive, non-commercial license to use the Freshchat SDK solely for the purpose of developing, testing, operating, and distributing along with Your Application, the mobile customer support and engagement platform provided by Freshworks called Freshchat. Application herein shall have the same meaning as the Freshchat Terms of Service. +Trademark Licenses: Freshchat and Freshworks’s other product and service names, and logos used or displayed, as a part of the Freshchat SDK, or on the Service or Websites are registered or unregistered trademarks of Freshworks (collectively, “Marks”), and You may only use such Marks to identify You as a user of Freshchat; provided You do not attempt, now or in the future, to claim any rights in the Marks, degrade the distinctiveness of the Marks, or use the Marks to disparage or misrepresent Freshworks, its services or products. Your use of third party service names or logos will be governed by their licenses only. + +Restrictions on use of Freshchat SDK +———————————————————————————— +Except as permitted in writing, You agree not to (a) modify, adapt, alter, translate or otherwise attempt to gain unauthorized access to Freshchat or related systems or networks; (b) falsely imply any sponsorship or association with Us; (c) use the Freshchat SDK in any manner that interferes with or disrupts the integrity or performance of the Freshchat and its components; (d) attempt to decipher, decompile, reverse engineer, disassemble, reproduce, or modify the source code or underlying applications provided in the Freshchat SDK; (e) rent, lease, or otherwise commercially distribute or offer to distribute, the Freshchat SDK; or (f) try to use, or use the Freshchat SDK in violation of this Agreement. +Intellectual Property Rights +Ownership: Except for the license granted to You, all rights, title and interest in and to all Our patents, inventions, copyrights, trademarks, domain names, trade secrets, know-how and any other intellectual property and/or proprietary rights in or related to the Freshchat SDK and any part of it (collectively, “Intellectual Property Rights”) shall belong to and remain exclusively with Freshworks. Freshworks acknowledges that You own the applications You develop using the Freshchat SDK. +Feedback and Recommendations: Freshworks shall have a royalty-free, worldwide, transferable, sub-licensable, irrevocable and perpetual license to incorporate or otherwise use any suggestions, enhancement requests, recommendations or other feedback We receive from You with respect to Freshchat or Freshchat SDK. +Copyright Notices: You agree that You will maintain and not remove, obscure or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within or as a part of the Freshchat SDK. +Reservation of Rights: All rights not expressly provided to You herein are reserved. + +Updates and Support +———————————————————————————— +Freshworks may provide upgrades, patches, enhancements, or fixes for the Freshchat SDK (“Updates”) which shall be subject to this Agreement. Freshworks may also provide You with reasonable support to assist You in integrating Freshchat with Your Application (“Support”). Unless otherwise specified, no fees shall be payable by You for such Support. + +Disclaimer of Warranties +———————————————————————————— + +THE FRESHCHAT SDK IS PROVIDED ON AN “AS IS” BASIS, WITHOUT ANY WARRANTIES OF ANY KIND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, AND FRESHWORKS EXPRESSLY DISCLAIMS ANY AND ALL CONDITIONS, REPRESENTATIONS, WARRANTIES OR OTHER TERMS, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, TITLE, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. YOUR USE OF THE FRESHCHAT SDK IS AT YOUR OWN RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. +Limitation of Liability +TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL FRESHWORKS, ITS AFFILIATES, OFFICERS, DIRECTORS, EMPLOYEES, AGENTS, SUPPLIERS OR LICENSORS BE LIABLE TO ANY PERSON FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, COVER OR CONSEQUENTIAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, REVENUE, SALES, GOODWILL, USE OR CONTENT, IMPACT ON BUSINESS, BUSINESS INTERRUPTION, LOSS OF ANTICIPATED SAVINGS, LOSS OF BUSINESS OPPORTUNITY) HOWEVER CAUSED, UNDER ANY THEORY OF LIABILITY, INCLUDING, WITHOUT LIMITATION, CONTRACT, TORT, WARRANTY, BREACH OF STATUTORY DUTY,NEGLIGENCE OR OTHERWISE, EVEN IF FRESWORKS HAS BEEN ADVISED AS TO THE POSSIBILITY OF SUCH DAMAGES OR COULD HAVE FORESEEN SUCH DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE AGGREGATE LIABILITY OF FRESWORKS AND ITS AFFILIATES, OFFICERS, EMPLOYEES, AGENTS, SUPPLIERS AND LICENSORS, RELATING TO THE SERVICE WILL BE LIMITED TO AN AMOUNT EQUAL TO USD ONE THOUSAND, PRIOR TO THE FIRST EVENT OR OCCURRENCE GIVING RISE TO SUCH LIABILITY. + +Indemnification +———————————————————————————— +You will indemnify and hold Freshworks harmless against any claim brought by a third party against the Freshworks, and its employees, officers, directors and agents arising from or related to use of the Freshchat SDK by You in breach of this Agreement provided that Freshworks promptly notifies You of the threat or notice of such a claim. + +Termination +———————————————————————————— +You may terminate this Agreement at any time by ceasing to use the Freshchat SDK and deleting, destroying or removing from Your systems, hard drives, networks, and other storage media all copies of the Freshchat SDK. We may terminate this Agreement by written notice to You or if You are in breach of any provisions of this Agreement. + +Export Controls +———————————————————————————— +You acknowledge and agree that You will not import, export, or re-export, directly or indirectly, the Freshchat SDK or any part thereof (including, without limitation, any related information) to any country in violation of the laws and regulations of any applicable jurisdiction. This restriction expressly includes, without limitation, the export regulations of the United States, and the import and export restrictions of the various European countries. You further agree to defend, indemnify and hold harmless Freshworks, its affiliates and their respective directors, officers, employees, agents and representatives from any losses, costs, claims or other liabilities arising out of Your breach of this Section. + +Miscellaneous Provisions +———————————————————————————— +Severability and Waiver: If any provision in this Agreement is held by a court of competent jurisdiction to be unenforceable, such provision shall be interpreted so as to best accomplish the original provision to the fullest extent permitted by applicable law, and the remaining provisions of this Agreement shall remain in effect. The failure or delay of Freshworks to exercise any right herein shall not be deemed a waiver of any right hereunder. + +Survival: The provisions pertaining to Ownership of Intellectual Property Rights Disclaimer of Warranties, Limitation of Liability, Indemnification, Survival and Governing Law and Dispute Resolution shall survive any termination of this Agreement. Such termination shall not limit Your or Freshworks’s liability for obligations accrued as of or prior to such termination or for any breach of this Agreement. + +Notice: You agree that We may send You communications or data regarding the Freshchat SDK, including but not limited to: (a) notices about Your use of the Freshchat SDK, including any notices concerning violations of use; (b) updates; and (c) any other related issues, via electronic mail You have provided us while creating Your Account with Us. Our address for a notice to us in writing by nationally recognized overnight delivery service (“Courier”) or US Mail is: Freshworks, Inc., 1250 Bayhill Drive, Suite 315, San Bruno, CA 94066 with a CC to legal@freshworks.com by electronic mail. All notices shall be deemed to have been given immediately upon delivery by electronic mail, or if otherwise delivered upon receipt or, if earlier, two (2) business days after being deposited in the mail or with a Courier as specified above. “Your Account” mentioned herein shall have the same meaning specified in the Freshchat Terms of Service. + +Governing Law and Dispute Resolution: This Agreement shall be governed by the laws of the State of California without reference to conflict of laws principles. You hereby expressly agree to submit to the exclusive personal jurisdiction of the federal and state courts of the State of California, San Francisco County, for the purpose of resolving any dispute relating to this Agreement or access to or use of the Freshchat SDK by You. + +Any dispute, claim or controversy arising out of or relating to this Agreement or the breach, termination, enforcement, interpretation or validity thereof, including the determination of the scope or applicability of the terms herein to arbitrate, shall be determined by arbitration in San Francisco, California before three arbitrators. The arbitration shall be administered by JAMS pursuant to its Comprehensive Arbitration Rules and Procedures and in accordance with the Expedited Procedures in those Rules. Judgment on the Award may be entered in any court having jurisdiction. Any arbitration under this Agreement shall take place on an individual basis. Class action and class arbitrations are not permitted. You understand that by agreeing to the terms of this Agreement, You waive Your right to participate in class actions. This clause shall not preclude parties from seeking provisional remedies in aid of arbitration from a court of appropriate jurisdiction. \ No newline at end of file diff --git a/ios/Classes/FreshchatSDK/ReleaseNotes.txt b/ios/Classes/FreshchatSDK/ReleaseNotes.txt new file mode 100644 index 0000000..d07a4ac --- /dev/null +++ b/ios/Classes/FreshchatSDK/ReleaseNotes.txt @@ -0,0 +1,274 @@ +Freshchat iOS SDK - Powered by Freshdesk + +Documentation : https://support.freshchat.com +Support Email : support@freshchat.com +Version : 2.9.0 + +Ver 2.9.0 +__________________________ +Enhancement : +- Support for filtered FAQ search. + +Ver 2.8.1 +__________________________ +Fix : +- iOS 13 Dark Mode UI Fixes. + +Ver 2.8.0 +__________________________ +Feature : +Support for showing proactive reply suggestions. +Bug Fix : +Push notification token fix for apps built via Xcode 11. + +Ver 2.7.2 +__________________________ +Fixes : +- iOS 13 UI fixes and enhancements. +- Fix App Store warning for deprecated UIWebView. + +Ver 2.7.1 +__________________________ +Enhancements : +- Added option to set image for close button. +- Custom theme retention across user sessions if not initialised. +Bug Fixes : +- Fixed background scrolling in message list screen. +- UI improvements for newer devices. + +Ver 2.7.0 +__________________________ +Enhancements : +- Added new user events. +- Events are richer with metdata. +Breaking change : +- Action name for user events change from `FRESHCHAT_ACTION_USER_ACTIONS` to `FRESHCHAT_EVENTS`. +- Change in format of the event object (the key for the information is now  `event` instead of `action`). + +Ver 2.6.2 +__________________________ +Bug fix : +- Fix Away Messages not being displayed due to an incompatibility in version 2.6.0 and 2.6.1 + +Ver 2.6.1 +__________________________ +Enhancements : +- Once the article is updated, users will again see the voting option. +- Now users will be able to message you from the downvoted article screen, even if they leave and come back again. + +Ver 2.6.0 +__________________________ +Feature : +- Hide resolved messages for conversation with defined interval. +Bug fixes : +- Dismiss CSAT if expired. +- Correct alignment of text bar for keyboard with text prediction. + +Ver 2.5.2 +__________________________ +Fix file access permission for background access to database. + +Ver 2.5.1 +__________________________ +Enhancement : +- Improvements in keychain store. + +Ver 2.5.0 +__________________________ +Enhancement : +- Improvements in keychain store. + +Ver 2.4.4 +__________________________ +Bug Fix : +- Improved user experience during API failures. + +Ver 2.4.3 +__________________________ +Enhancement : +- Improvements in logic to load new messages for conversations + +Ver 2.4.2 +__________________________ +Bug Fix: +- Trigger Restore ID event when there is change in restore ID and external ID. + +Ver 2.4.1 +__________________________ +Bug Fix: +- Custom localised strings being cleared on resetUser + +Ver 2.4.0 +__________________________ +Enhancement : +- Add FAQ options flag showContactUsOnFaqNotHelpful for showing ContactUs in article detail view +Changes: +- When `showContactUsOnAppBar` is true, contact us button will be shown in app bar only +Fix : +- Invalid image asset reference + +Ver 2.3.0 +__________________________ +Enhancement +- Graceful handling of unsupported messages + +Ver 2.2.0 +__________________________ +Enhancements: +- Ability to configure custom response expectations and away message for channels. +- Config to hide response time. +Fix: +- Fix stale cache of response time. + +Ver 2.1.0 +__________________________ +Enhancement +- Ability to mask sensitive data present in user message + +Ver 2.0.0 +__________________________ +Enhancements +- Ability to intercept all external links +- Securely identify and restore users using Id Tokens (JWT) +- Ability to intercept Freshchat notification +- Ability to listen to Freshchat events like message sent, message received, etc. + +Ver 1.5.6 +__________________________ +Enhancement: +- Ability to hide historical response time. +Change: +- Updated FAQ helpful prompt string to “Was this FAQ helpful?”. + +Ver 1.5.5 +__________________________ +Fixes build issue with Xcode 10. + +Ver 1.5.4 +__________________________ +Theme fixes and UI enhancements for chat resolution prompt + +Ver 1.5.3 +__________________________ +Fix: Fallback to default theme if custom theme is missing +UI optimisation for newer devices + +Ver 1.5.2 +__________________________ +Display brand's name or default text (Support) as name when TeamMemberInfoVisible is false + +Ver 1.5.1 +__________________________ +Agent avatar behaviour change - specific order of fallback (agent avatar, then custom static icon, then app icon) +iPhoneX image preview changes + +Ver 1.5.0 +__________________________ +Support for auto expiring Customer Satisfaction Surveys +Add support for overriding CSAT survey's question +Action name for unread count API changed to FRESHCHAT_UNREAD_MESSAGE_COUNT_CHANGED + +Ver 1.4.6 +__________________________ +Fix theme color for message text +Make push prompt configurable + +Ver 1.4.5 +__________________________ +Fix marketing campaign notifications not showing when app is open + +Ver 1.4.4 +__________________________ +Display files sent by user from other platforms + +Ver 1.4.3 +__________________________ +Fix rare issue with first user message displaying twice over + +Ver 1.4.2 +__________________________ +Support for locale changes at runtime +Fix channel icon in in-app notification +Fix theme issue with back button when closing gallery + +Ver 1.4.1 +__________________________ +Fix regression with user updates + +Ver 1.4.0 +__________________________ +Graceful handling of deleted users and accounts + +Ver 1.3.3 +__________________________ +Bug Fixes + +Ver 1.3.2 +__________________________ +Support for historical response time if current response time is not available +Enhancements and bug fixes + +Ver 1.3.1 +__________________________ +-Team Member info now controlled by a unified flag (teamMemberInfoVisible) +-Message cell rendering fixes for orientation changes +-Miscellaneous fixes + +Ver 1.3.0 +__________________________ +SDK header file name updated to FreshchatSDK.h for naming consistency. +Better rendering support for RTL content. + +Ver 1.2.5 +__________________________ +Fixes for Swift project crashes and misc fixes. + +Ver 1.2.4 +__________________________ +Remove unused microphone permission + +Ver 1.2.3 +__________________________ +UI improvements for iPhoneX devices. +Minor bugs fixes. + +Ver 1.2.2 +__________________________ +Fixes for on-demand init when showing conversations with tags. +Fixes for text alignment in message bubble. + +Ver 1.2.1 +__________________________ +Update refresh intervals + +Ver 1.2.0 +__________________________ +User restore functionality +Minor bug fixes and improvements + +Ver 1.1.1 +__________________________ +Minor UI fixes + +Ver 1.1.0 +__________________________ +- Changes for SDK Theming. +- Added Send message api. +- Minor bug fixes + +Ver 1.0.2 +__________________________ +Fix for potential issues when migrating from Hotline. + +Ver 1.0.1 +__________________________ +Minor bug fixes + +Ver 1.0.0 +__________________________ +"Modern messaging software that your sales and customer engagement teams will love" +Features : +- Offline FAQs. +- Message Channels. +- Campaign Messages. +- Customer Satisfaction Survey for Channels. diff --git a/ios/Classes/FreshchatSDK/libFDFreshchatSDK.a b/ios/Classes/FreshchatSDK/libFDFreshchatSDK.a new file mode 100644 index 0000000..85f7a58 Binary files /dev/null and b/ios/Classes/FreshchatSDK/libFDFreshchatSDK.a differ diff --git a/ios/flutter_freshchat.podspec b/ios/flutter_freshchat.podspec index eadf000..7e471ea 100644 --- a/ios/flutter_freshchat.podspec +++ b/ios/flutter_freshchat.podspec @@ -3,7 +3,7 @@ # Pod::Spec.new do |s| s.name = 'flutter_freshchat' - s.version = '0.0.4' + s.version = '0.0.5' s.summary = 'A Flutter plugin for integrating Freshchat in your mobile app.' s.description = <<-DESC A Flutter plugin for integrating Freshchat in your mobile app. @@ -11,13 +11,14 @@ A Flutter plugin for integrating Freshchat in your mobile app. s.homepage = 'https://github.com/fayeed/flutter_freshchat' s.license = { :file => '../LICENSE' } s.author = { 'Fayeed Pawaskar' => 'fayeed@live.com' } - s.source = { :git => "https://github.com/freshdesk/freshchat-ios.git", :tag => "3.4.0" } - s.source_files = 'Classes/**/*' + s.source = { :path => '.' } + s.source_files = 'Classes/**/*.{h,m,swift}' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'FreshchatSDK' + s.resources = "Classes/FreshchatSDK/FCResources.bundle", "Classes/FreshchatSDK/FreshchatModels.bundle", "Classes/FreshchatSDK/FCLocalization.bundle" + s.ios.vendored_library = "Classes/FreshchatSDK/libFDFreshchatSDK.a" s.frameworks = "Foundation", "AVFoundation", "AudioToolbox", "CoreMedia", "CoreData", "ImageIO", "Photos", "SystemConfiguration", "Security", "WebKit" - s.static_framework = true + s.requires_arc = true s.ios.deployment_target = '8.0' end