From 9bb554260c63842b23919b1f128b9cc8488b7f50 Mon Sep 17 00:00:00 2001
From: hank <hank.zhang@proficientcity.com>
Date: Tue, 22 Jan 2019 11:15:22 +0800
Subject: [PATCH] 添加V3.8.0
---
res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings | 24
res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings | 37
res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings | 37
res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings | 37
res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings | 39
config/wa_sdk_impl_config_aihelp.xml | 2
res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings | 24
res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings | 32 +
res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings | 32 +
res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings | 32 +
res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings | 37
frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeRequirements-1 | 0
res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings | 39
res/ElvaChatServiceSDK.bundle/ab_reward.png | 0
res/ElvaChatServiceSDK.bundle/checkbox_unchecked.png | 0
frameworks/ElvaChatServiceSDK.framework/Info.plist | 0
res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings | 24
res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings | 24
res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings | 37
frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeSignature | 0
frameworks/WAAIhelpImpl.framework/WAAIhelpImpl | 0
frameworks/ElvaChatServiceSDK.framework/Headers/UnityRendering.h | 293 ++++++++++
frameworks/ElvaChatServiceSDK.framework/Headers/UnityForwardDecls.h | 191 +++++++
res/ElvaChatServiceSDK.bundle/checkbox_checked.png | 0
/dev/null | 25
res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings | 40
res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings | 37
res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings | 24
res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings | 32 +
frameworks/WAAIhelpImpl.framework/Info.plist | 0
frameworks/WAAIhelpImpl.framework/Headers/WAAIhelpImpl.h | 2
frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeResources | 53 +
res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings | 37
frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h | 6
res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings | 18
frameworks/ElvaChatServiceSDK.framework/Headers/UnityInterface.h | 371 +++++++++++++
frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK | 0
frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeDirectory | 0
WAAiHelpImpl.podspec | 6
39 files changed, 1,342 insertions(+), 250 deletions(-)
diff --git a/WAAiHelpImpl.podspec b/WAAiHelpImpl.podspec
index 07c3f8e..fa7dae0 100644
--- a/WAAiHelpImpl.podspec
+++ b/WAAiHelpImpl.podspec
@@ -9,7 +9,7 @@
Pod::Spec.new do |s|
s.name = 'WAAiHelpImpl'
-s.version = '3.7.0'
+s.version = '3.8.0'
s.summary = 'WAAfImpl framework in testing environment.'
s.license = 'MIT'
s.author = { "Hank" => "hank.zhang@gamehollywood.com" }
@@ -22,6 +22,6 @@
s.libraries = 'sqlite3'
s.resources = ['config/*.xml','res/ElvaChatServiceSDK.bundle','res/ElvaChatServiceSDK.bundle','res/*.xib','res/Localization/*/*.strings']
s.requires_arc = true
-s.dependency 'WASdkIntf', '~> 3.7.0' #此处添加私有库依赖
-s.dependency 'WASdkImpl', '~> 3.7.0'
+s.dependency 'WASdkIntf', '~> 3.8.0' #此处添加私有库依赖
+s.dependency 'WASdkImpl', '~> 3.8.0'
end
diff --git a/config/wa_sdk_impl_config_aihelp.xml b/config/wa_sdk_impl_config_aihelp.xml
index dd14251..cc09658 100644
--- a/config/wa_sdk_impl_config_aihelp.xml
+++ b/config/wa_sdk_impl_config_aihelp.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<config>
- <version val="AIHELP3.7.0"/>
+ <version val="AIHELP3.8.0"/>
<comps>
<!-- 公共模块 -->
<comp module="CORE" plaf="AIHELP" mandatory="YES" value="WAAIhelpCore" desc="公共模块"/>
diff --git a/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK b/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK
index 569c855..acbb33e 100755
--- a/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK
+++ b/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK
Binary files differ
diff --git a/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h b/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h
index 2bdd527..2cdd57e 100755
--- a/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h
+++ b/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h
@@ -6,7 +6,8 @@
#import <Foundation/Foundation.h>
@interface ECServiceSdk:NSObject
-
++ (void) registerUnityOnInitializedCallback:(NSString *) gameObject;
++ (void) registerUnityOnMessageArrivedCallback:(NSString *) gameObject;
+ (void) init:(NSString*) appSecret Domain:(NSString*) domain AppId:(NSString*) appId;
+ (void) showElva:(NSString*) playerName PlayerUid:(NSString*) playerUid ServerId:(NSString*) serverId PlayerParseId:(NSString*) playerParseId PlayershowConversationFlag:(NSString*) playershowConversationFlag;
+ (void) showElva:(NSString*) playerName PlayerUid:(NSString*) playerUid ServerId:(NSString*) serverId PlayerParseId:(NSString*) playerParseId PlayershowConversationFlag:(NSString*) playershowConversationFlag Config:(NSMutableDictionary*) config;
@@ -30,6 +31,7 @@
+ (void) setNoMenu;
+ (void) setSendCloseNotification:(BOOL) isSend;
+ (void) setAccelerateDomain:(NSString *)domain;
++ (void) setOpenLog:(BOOL)isOpen;
+ (void) showVIPChat:(NSString*) appidWeb VIPTags:(NSString *) vipTags;
@@ -44,5 +46,7 @@
+ (void) handlePushNotification:(NSDictionary *) table DataFromInApp:(BOOL) dataFromInApp;
+ (int) getNotificationMessageCount;
++ (void) showURL:(NSString *) url;
++ (void) setUnreadMessageFetchUid:(NSString*) playerUid;
@end
diff --git a/frameworks/ElvaChatServiceSDK.framework/Headers/UnityForwardDecls.h b/frameworks/ElvaChatServiceSDK.framework/Headers/UnityForwardDecls.h
new file mode 100755
index 0000000..ab50faa
--- /dev/null
+++ b/frameworks/ElvaChatServiceSDK.framework/Headers/UnityForwardDecls.h
@@ -0,0 +1,191 @@
+#pragma once
+
+#include <stdint.h>
+
+#ifdef __OBJC__
+@class UIScreen;
+@class UIWindow;
+@class UIView;
+@class UIViewController;
+@class UIEvent;
+@class UILocalNotification;
+@class NSString;
+@class NSDictionary;
+@class NSSet;
+@class NSData;
+@class NSError;
+@class NSBundle;
+
+@class UnityViewControllerBase;
+#else
+typedef struct objc_object UIScreen;
+typedef struct objc_object UIWindow;
+typedef struct objc_object UIView;
+typedef struct objc_object UIViewController;
+typedef struct objc_object UIEvent;
+typedef struct objc_object UILocalNotification;
+typedef struct objc_object NSString;
+typedef struct objc_object NSDictionary;
+typedef struct objc_object NSSet;
+typedef struct objc_object NSError;
+typedef struct objc_object NSData;
+typedef struct objc_object NSBundle;
+
+typedef struct objc_object UnityViewControllerBase;
+#endif
+
+// unity internal audio effect definition struct
+struct UnityAudioEffectDefinition;
+
+// new unity rendering api
+struct IUnityInterfaces;
+
+// be aware that this struct is shared with unity implementation so you should absolutely not change it
+struct UnityFrameStats
+{
+ uint64_t fixedBehaviourManagerDt;
+ uint64_t fixedPhysicsManagerDt;
+ uint64_t dynamicBehaviourManagerDt;
+ uint64_t coroutineDt;
+ uint64_t skinMeshUpdateDt;
+ uint64_t animationUpdateDt;
+ uint64_t renderDt;
+ uint64_t cullingDt;
+ uint64_t clearDt;
+ int fixedUpdateCount;
+
+ int batchCount;
+ uint64_t drawCallTime;
+ int drawCallCount;
+ int triCount;
+ int vertCount;
+
+ uint64_t dynamicBatchDt;
+ int dynamicBatchCount;
+ int dynamicBatchedDrawCallCount;
+ int dynamicBatchedTris;
+ int dynamicBatchedVerts;
+
+ int staticBatchCount;
+ int staticBatchedDrawCallCount;
+ int staticBatchedTris;
+ int staticBatchedVerts;
+};
+
+
+// be aware that this enum is shared with unity implementation so you should absolutely not change it
+typedef enum
+ LogType
+{
+ logError = 0,
+ logAssert = 1,
+ logWarning = 2,
+ logLog = 3,
+ logException = 4,
+ logDebug = 5,
+}
+LogType;
+
+
+// be aware that this enum is shared with unity implementation so you should absolutely not change it
+typedef enum
+ DeviceGeneration
+{
+ deviceUnknown = 0,
+ deviceiPhone3GS = 3,
+ deviceiPhone4 = 8,
+ deviceiPodTouch4Gen = 9,
+ deviceiPad2Gen = 10,
+ deviceiPhone4S = 11,
+ deviceiPad3Gen = 12,
+ deviceiPhone5 = 13,
+ deviceiPodTouch5Gen = 14,
+ deviceiPadMini1Gen = 15,
+ deviceiPad4Gen = 16,
+ deviceiPhone5C = 17,
+ deviceiPhone5S = 18,
+ deviceiPadAir1 = 19,
+ deviceiPadMini2Gen = 20,
+ deviceiPhone6 = 21,
+ deviceiPhone6Plus = 22,
+ deviceiPadMini3Gen = 23,
+ deviceiPadAir2 = 24,
+ deviceiPhone6S = 25,
+ deviceiPhone6SPlus = 26,
+ deviceiPadPro1Gen = 27,
+ deviceiPadMini4Gen = 28,
+ deviceiPhoneSE1Gen = 29,
+ deviceiPadPro10Inch1Gen = 30,
+ deviceiPhone7 = 31,
+ deviceiPhone7Plus = 32,
+ deviceiPodTouch6Gen = 33,
+ deviceiPad5Gen = 34,
+ deviceiPadPro2Gen = 35,
+ deviceiPadPro10Inch2Gen = 36,
+
+ deviceiPhoneUnknown = 10001,
+ deviceiPadUnknown = 10002,
+ deviceiPodTouchUnknown = 10003,
+}
+DeviceGeneration;
+
+
+// be aware that this enum is shared with unity implementation so you should absolutely not change it
+typedef enum
+ ScreenOrientation
+{
+ orientationUnknown,
+ portrait,
+ portraitUpsideDown,
+ landscapeLeft,
+ landscapeRight,
+
+ orientationCount,
+}
+ScreenOrientation;
+
+
+// be aware that this enum is shared with unity implementation so you should absolutely not change it
+typedef enum
+ AppInBackgroundBehavior
+{
+ appbgCustom = -1,
+ appbgSuspend = 0,
+ appbgExit = 1,
+}
+AppInBackgroundBehavior;
+
+
+// this dictates touches processing on os level: should we transform touches to unity view coords or not.
+// N.B. touch.position will always be adjusted to current resolution
+// i.e. if you touch right border of view, touch.position.x will be Screen.width, not view.width
+// to get coords in view space (os-coords), use touch.rawPosition
+typedef enum
+ ViewTouchProcessing
+{
+ // the touches originated from view will be ignored by unity
+ touchesIgnored = 0,
+
+ // touches would be processed as if they were originated in unity view:
+ // coords will be transformed from view coords to unity view coords
+ touchesTransformedToUnityViewCoords = 1,
+
+ // touches coords will be kept intact (in originated view coords)
+ // it is default value
+ touchesKeptInOriginalViewCoords = 2,
+}
+ViewTouchProcessing;
+
+#ifdef __cplusplus
+extern bool _ios42orNewer;
+extern bool _ios43orNewer;
+extern bool _ios50orNewer;
+extern bool _ios60orNewer;
+extern bool _ios70orNewer;
+extern bool _ios80orNewer;
+extern bool _ios81orNewer;
+extern bool _ios82orNewer;
+extern bool _ios90orNewer;
+extern bool _ios91orNewer;
+extern bool _ios100orNewer;
+#endif
diff --git a/frameworks/ElvaChatServiceSDK.framework/Headers/UnityInterface.h b/frameworks/ElvaChatServiceSDK.framework/Headers/UnityInterface.h
new file mode 100755
index 0000000..1b3e2a7
--- /dev/null
+++ b/frameworks/ElvaChatServiceSDK.framework/Headers/UnityInterface.h
@@ -0,0 +1,371 @@
+#pragma once
+
+#include <stdint.h>
+#include <stdarg.h>
+
+#include "UnityForwardDecls.h"
+#include "UnityRendering.h"
+
+// unity plugin functions
+
+// audio plugin api
+typedef int (*UnityPluginGetAudioEffectDefinitionsFunc)(struct UnityAudioEffectDefinition*** descptr);
+
+// OLD rendering plugin api (will become obsolete soon)
+typedef void (*UnityPluginSetGraphicsDeviceFunc)(void* device, int deviceType, int eventType);
+typedef void (*UnityPluginRenderMarkerFunc)(int marker);
+
+// new rendering plugin api
+typedef void (*UnityPluginLoadFunc)(struct IUnityInterfaces* unityInterfaces);
+typedef void (*UnityPluginUnloadFunc)();
+
+
+// log handler function
+#ifdef __cplusplus
+typedef bool (*LogEntryHandler)(LogType logType, const char* log, va_list list);
+#endif
+
+//
+// these are functions referenced in trampoline and implemented in unity player lib
+//
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// life cycle management
+
+void UnityInitStartupTime();
+void UnityInitRuntime(int argc, char* argv[]);
+void UnityInitApplicationNoGraphics(const char* appPathName);
+void UnityInitApplicationGraphics(int forceDirectRendering);
+void UnityCleanup();
+void UnityLoadApplication();
+void UnityPlayerLoop(); // normal player loop
+void UnityBatchPlayerLoop(); // batch mode like player loop, without rendering (usable for background processing)
+void UnitySetPlayerFocus(int focused); // send OnApplicationFocus() message to scripts
+void UnityLowMemory();
+void UnityPause(int pause);
+int UnityIsPaused(); // 0 if player is running, 1 if paused
+void UnityWillPause(); // send the message that app will pause
+void UnityWillResume(); // send the message that app will resume
+void UnityInputProcess();
+void UnityDeliverUIEvents(); // unity processing impacting UI will be called in there
+
+
+// rendering
+
+int UnityGetRenderingAPIs(int capacity, int* outAPIs);
+void UnityFinishRendering();
+
+// OpenGL ES.
+
+int UnityHasRenderingAPIExtension(const char* extension);
+void UnityOnSetCurrentGLContext(EAGLContext* context);
+
+// This must match the one in ApiEnumsGLES.h
+typedef enum UnityFramebufferTarget
+{
+ kDrawFramebuffer = 0,
+ kReadFramebuffer,
+ kFramebufferTargetCount
+} UnityFramebufferTarget;
+void UnityBindFramebuffer(UnityFramebufferTarget target, int fbo);
+void UnityRegisterFBO(UnityRenderBufferHandle color, UnityRenderBufferHandle depth, unsigned fbo);
+
+// controling player internals
+
+// TODO: needs some cleanup
+void UnitySetAudioSessionActive(int active);
+void UnityGLInvalidateState();
+void UnityReloadResources();
+int UnityIsCaptureScreenshotRequested();
+void UnityCaptureScreenshot();
+void UnitySendMessage(const char* obj, const char* method, const char* msg);
+
+EAGLContext* UnityGetDataContextGLES();
+
+#ifdef __cplusplus
+void UnitySetLogEntryHandler(LogEntryHandler newHandler);
+#endif
+
+
+// plugins support
+
+// WARNING: old UnityRegisterRenderingPlugin will become obsolete soon
+void UnityRegisterRenderingPlugin(UnityPluginSetGraphicsDeviceFunc setDevice, UnityPluginRenderMarkerFunc renderMarker);
+
+void UnityRegisterRenderingPluginV5(UnityPluginLoadFunc loadPlugin, UnityPluginUnloadFunc unloadPlugin);
+void UnityRegisterAudioPlugin(UnityPluginGetAudioEffectDefinitionsFunc getAudioEffectDefinitions);
+
+
+// resolution/orientation handling
+
+void UnityGetRenderingResolution(unsigned* w, unsigned* h);
+void UnityGetSystemResolution(unsigned* w, unsigned* h);
+
+void UnityRequestRenderingResolution(unsigned w, unsigned h);
+
+int UnityIsOrientationEnabled(unsigned /*ScreenOrientation*/ orientation);
+
+int UnityHasOrientationRequest();
+int UnityShouldAutorotate();
+int UnityRequestedScreenOrientation(); // returns ScreenOrientation
+void UnityOrientationRequestWasCommitted();
+
+int UnityReportResizeView(unsigned w, unsigned h, unsigned /*ScreenOrientation*/ contentOrientation); // returns ScreenOrientation
+void UnityReportBackbufferChange(UnityRenderBufferHandle colorBB, UnityRenderBufferHandle depthBB);
+
+
+// player settings
+
+int UnityDisableDepthAndStencilBuffers();
+int UnityUseAnimatedAutorotation();
+int UnityGetDesiredMSAASampleCount(int defaultSampleCount);
+int UnityGetSRGBRequested();
+int UnityGetShowActivityIndicatorOnLoading();
+int UnityGetAccelerometerFrequency();
+int UnityGetTargetFPS();
+int UnityGetAppBackgroundBehavior();
+
+
+// push notifications
+#if !UNITY_TVOS
+void UnitySendLocalNotification(UILocalNotification* notification);
+#endif
+void UnitySendRemoteNotification(NSDictionary* notification);
+void UnitySendDeviceToken(NSData* deviceToken);
+void UnitySendRemoteNotificationError(NSError* error);
+
+// native events
+
+void UnityInvalidateDisplayDataCache(void* screen);
+void UnityUpdateDisplayList(void** screens, int screenCount);
+
+
+// profiler
+
+void* UnityCreateProfilerCounter(const char*);
+void UnityDestroyProfilerCounter(void*);
+void UnityStartProfilerCounter(void*);
+void UnityEndProfilerCounter(void*);
+
+
+// sensors
+
+void UnitySensorsSetGyroRotationRate(int idx, float x, float y, float z);
+void UnitySensorsSetGyroRotationRateUnbiased(int idx, float x, float y, float z);
+void UnitySensorsSetGravity(int idx, float x, float y, float z);
+void UnitySensorsSetUserAcceleration(int idx, float x, float y, float z);
+void UnitySensorsSetAttitude(int idx, float x, float y, float z, float w);
+void UnityDidAccelerate(float x, float y, float z, double timestamp);
+void UnitySetJoystickPosition(int joyNum, int axis, float pos);
+int UnityStringToKey(const char *name);
+void UnitySetKeyState(int key, int /*bool*/ state);
+
+// WWW connection handling
+
+void UnityReportWWWStatusError(void* udata, int status, const char* error);
+
+void UnityReportWWWReceivedResponse(void* udata, int status, unsigned expectedDataLength, const char* respHeader);
+void UnityReportWWWReceivedData(void* udata, const void* buffer, unsigned totalRead, unsigned expectedTotal);
+void UnityReportWWWFinishedLoadingData(void* udata);
+void UnityReportWWWSentData(void* udata, unsigned totalWritten, unsigned expectedTotal);
+
+// AVCapture
+
+void UnityReportAVCapturePermission();
+void UnityDidCaptureVideoFrame(intptr_t tex, void* udata);
+
+// logging override
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+
+// touches processing
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void UnitySetViewTouchProcessing(UIView* view, int /*ViewTouchProcessing*/ processingPolicy);
+void UnityDropViewTouchProcessing(UIView* view);
+
+void UnitySendTouchesBegin(NSSet* touches, UIEvent* event);
+void UnitySendTouchesEnded(NSSet* touches, UIEvent* event);
+void UnitySendTouchesCancelled(NSSet* touches, UIEvent* event);
+void UnitySendTouchesMoved(NSSet* touches, UIEvent* event);
+
+void UnityCancelTouches();
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+
+//
+// these are functions referenced and implemented in trampoline
+//
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// UnityAppController.mm
+UIViewController* UnityGetGLViewController();
+UIView* UnityGetGLView();
+UIWindow* UnityGetMainWindow();
+enum ScreenOrientation UnityCurrentOrientation();
+
+// Unity/DisplayManager.mm
+float UnityScreenScaleFactor(UIScreen* screen);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+
+//
+// these are functions referenced in unity player lib and implemented in trampoline
+//
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// iPhone_Sensors.mm
+void UnityInitJoysticks();
+void UnityCoreMotionStart();
+void UnityCoreMotionStop();
+int UnityIsGyroEnabled(int idx);
+int UnityIsGyroAvailable();
+void UnityUpdateGyroData();
+void UnitySetGyroUpdateInterval(int idx, float interval);
+float UnityGetGyroUpdateInterval(int idx);
+void UnityUpdateJoystickData();
+int UnityGetJoystickCount();
+void UnityGetJoystickName(int idx, char* buffer, int maxLen);
+void UnityGetJoystickAxisName(int idx, int axis, char* buffer, int maxLen);
+void UnityGetNiceKeyname(int key, char* buffer, int maxLen);
+
+// UnityAppController+Rendering.mm
+void UnityInitMainScreenRenderingCallback();
+void UnityGfxInitedCallback();
+void UnityPresentContextCallback(struct UnityFrameStats const* frameStats);
+void UnityFramerateChangeCallback(int targetFPS);
+int UnitySelectedRenderingAPI();
+
+NSBundle* UnityGetMetalBundle();
+MTLDeviceRef UnityGetMetalDevice();
+MTLCommandQueueRef UnityGetMetalCommandQueue();
+
+EAGLContext* UnityGetDataContextEAGL();
+
+UnityRenderBufferHandle UnityBackbufferColor();
+UnityRenderBufferHandle UnityBackbufferDepth();
+
+// UI/ActivityIndicator.mm
+void UnityStartActivityIndicator();
+void UnityStopActivityIndicator();
+
+// UI/Keyboard.mm
+void UnityKeyboard_Create(unsigned keyboardType, int autocorrection, int multiline, int secure, int alert, const char* text, const char* placeholder);
+void UnityKeyboard_Show();
+void UnityKeyboard_Hide();
+void UnityKeyboard_GetRect(float* x, float* y, float* w, float* h);
+void UnityKeyboard_SetText(const char* text);
+NSString* UnityKeyboard_GetText();
+int UnityKeyboard_IsActive();
+int UnityKeyboard_IsDone();
+int UnityKeyboard_WasCanceled();
+void UnityKeyboard_SetInputHidden(int hidden);
+int UnityKeyboard_IsInputHidden();
+
+int UnityKeyboard_CanGetSelection();
+void UnityKeyboard_GetSelection(int* location, int* range);
+
+// UI/UnityViewControllerBase.mm
+void UnityNotifyAutoOrientationChange();
+
+// Unity/AVCapture.mm
+int UnityGetAVCapturePermission(int captureTypes);
+void UnityRequestAVCapturePermission(int captureTypes);
+
+// Unity/CameraCapture.mm
+void UnityEnumVideoCaptureDevices(void* udata, void(*callback)(void* udata, const char* name, int frontFacing));
+void* UnityInitCameraCapture(int device, int w, int h, int fps, void* udata);
+void UnityStartCameraCapture(void* capture);
+void UnityPauseCameraCapture(void* capture);
+void UnityStopCameraCapture(void* capture);
+void UnityCameraCaptureExtents(void* capture, int* w, int* h);
+void UnityCameraCaptureReadToMemory(void* capture, void* dst, int w, int h);
+int UnityCameraCaptureVideoRotationDeg(void* capture);
+int UnityCameraCaptureVerticallyMirrored(void* capture);
+
+
+// Unity/DeviceSettings.mm
+const char* UnityDeviceUniqueIdentifier();
+const char* UnityVendorIdentifier();
+const char* UnityAdvertisingIdentifier();
+int UnityAdvertisingTrackingEnabled();
+const char* UnityDeviceName();
+const char* UnitySystemName();
+const char* UnitySystemVersion();
+const char* UnityDeviceModel();
+int UnityDeviceCPUCount();
+int UnityDeviceGeneration();
+float UnityDeviceDPI();
+const char* UnitySystemLanguage();
+
+// Unity/DisplayManager.mm
+EAGLContext* UnityGetMainScreenContextGLES();
+EAGLContext* UnityGetContextEAGL();
+void UnityStartFrameRendering();
+void UnityDestroyUnityRenderSurfaces();
+
+// Unity/Filesystem.mm
+const char* UnityApplicationDir();
+const char* UnityDocumentsDir();
+const char* UnityLibraryDir();
+const char* UnityCachesDir();
+int UnityUpdateNoBackupFlag(const char* path, int setFlag); // Returns 1 if successful, otherwise 0
+
+// Unity/WWWConnection.mm
+void* UnityStartWWWConnectionGet(void* udata, const void* headerDict, const char* url);
+void* UnityStartWWWConnectionPost(void* udata, const void* headerDict, const char* url, const void* data, unsigned length);
+void UnityDestroyWWWConnection(void* connection);
+void UnityShouldCancelWWW(const void* connection);
+
+//Apple TV Remote
+int UnityGetAppleTVRemoteAllowExitToMenu();
+void UnitySetAppleTVRemoteAllowExitToMenu(int val);
+int UnityGetAppleTVRemoteAllowRotation();
+void UnitySetAppleTVRemoteAllowRotation(int val);
+int UnityGetAppleTVRemoteReportAbsoluteDpadValues();
+void UnitySetAppleTVRemoteReportAbsoluteDpadValues(int val);
+int UnityGetAppleTVRemoteTouchesEnabled();
+void UnitySetAppleTVRemoteTouchesEnabled(int val);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+
+#ifdef __OBJC__
+// This is basically a wrapper for [NSString UTF8String] with additional strdup.
+//
+// Apparently multiple calls on UTF8String will leak memory (NSData objects) that are collected
+// only when @autoreleasepool is exited. This function serves as documentation for this and as a
+// handy wrapper.
+inline char* AllocCString(NSString* value)
+{
+ if (value == nil)
+ return 0;
+
+ const char* str = [value UTF8String];
+ return str ? strdup(str) : 0;
+}
+
+#endif
diff --git a/frameworks/ElvaChatServiceSDK.framework/Headers/UnityRendering.h b/frameworks/ElvaChatServiceSDK.framework/Headers/UnityRendering.h
new file mode 100755
index 0000000..8c74ff4
--- /dev/null
+++ b/frameworks/ElvaChatServiceSDK.framework/Headers/UnityRendering.h
@@ -0,0 +1,293 @@
+#pragma once
+
+#ifdef __OBJC__
+@class CAEAGLLayer;
+@class EAGLContext;
+#else
+typedef struct objc_object CAEAGLLayer;
+typedef struct objc_object EAGLContext;
+#endif
+
+#ifdef __OBJC__
+@class CAMetalLayer;
+@protocol CAMetalDrawable;
+@protocol MTLDrawable;
+@protocol MTLDevice;
+@protocol MTLTexture;
+@protocol MTLCommandBuffer;
+@protocol MTLCommandQueue;
+@protocol MTLCommandEncoder;
+
+typedef id<CAMetalDrawable> CAMetalDrawableRef;
+typedef id<MTLDevice> MTLDeviceRef;
+typedef id<MTLTexture> MTLTextureRef;
+typedef id<MTLCommandBuffer> MTLCommandBufferRef;
+typedef id<MTLCommandQueue> MTLCommandQueueRef;
+typedef id<MTLCommandEncoder> MTLCommandEncoderRef;
+#else
+typedef struct objc_object CAMetalLayer;
+typedef struct objc_object* CAMetalDrawableRef;
+typedef struct objc_object* MTLDeviceRef;
+typedef struct objc_object* MTLTextureRef;
+typedef struct objc_object* MTLCommandBufferRef;
+typedef struct objc_object* MTLCommandQueueRef;
+typedef struct objc_object* MTLCommandEncoderRef;
+#endif
+
+// unity internal native render buffer struct (the one you acquire in C# with RenderBuffer.GetNativeRenderBufferPtr())
+struct RenderSurfaceBase;
+typedef struct RenderSurfaceBase* UnityRenderBufferHandle;
+
+// be aware that this struct is shared with unity implementation so you should absolutely not change it
+typedef struct
+ UnityRenderBufferDesc
+{
+ unsigned width, height, depth;
+ unsigned samples;
+
+ int backbuffer;
+}
+UnityRenderBufferDesc;
+
+// trick to make structure inheritance work transparently between c/cpp
+// for c we use "anonymous struct"
+#ifdef __cplusplus
+ #define START_STRUCT(T, Base) struct T : Base {
+ #define END_STRUCT(T) };
+#else
+ #define START_STRUCT(T, Base) typedef struct T { struct Base;
+ #define END_STRUCT(T) } T;
+#endif
+
+// we will keep objc objects in struct, so we need to explicitely mark references as strong to not confuse ARC
+// please note that actual object lifetime is managed in objc++ code, so __unsafe_unretained is good enough for objc code
+// DO NOT assign objects to UnityDisplaySurface* members in objc code.
+// DO NOT store objects from UnityDisplaySurface* members in objc code, as this wont be caught by ARC
+#ifdef __OBJC__
+ #ifdef __cplusplus
+ #define OBJC_OBJECT_PTR __strong
+ #else
+ #define OBJC_OBJECT_PTR __unsafe_unretained
+ #endif
+#else
+ #define OBJC_OBJECT_PTR
+#endif
+
+// unity common rendering (display) surface
+typedef struct
+ UnityDisplaySurfaceBase
+{
+ UnityRenderBufferHandle unityColorBuffer;
+ UnityRenderBufferHandle unityDepthBuffer;
+
+ UnityRenderBufferHandle systemColorBuffer;
+ UnityRenderBufferHandle systemDepthBuffer;
+
+ void* cvTextureCache; // CVOpenGLESTextureCacheRef
+ void* cvTextureCacheTexture; // CVOpenGLESTextureRef
+ void* cvPixelBuffer; // CVPixelBufferRef
+
+ unsigned targetW, targetH;
+ unsigned systemW, systemH;
+
+ int msaaSamples;
+ int useCVTextureCache; // [bool]
+ int srgb; // [bool]
+ int disableDepthAndStencil; // [bool]
+ int allowScreenshot; // [bool] currently we allow screenshots (from script) only on main display
+
+ int api; // [UnityRenderingAPI]
+}
+UnityDisplaySurfaceBase;
+
+
+// START_STRUCT confuse clang c compiler (though it is idiomatic c code that works)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wmissing-declarations"
+
+// GLES display surface
+START_STRUCT(UnityDisplaySurfaceGLES, UnityDisplaySurfaceBase)
+OBJC_OBJECT_PTR CAEAGLLayer * layer;
+OBJC_OBJECT_PTR EAGLContext* context;
+
+// system FB
+unsigned systemFB;
+unsigned systemColorRB;
+
+// target resolution FB/target RT to blit from
+unsigned targetFB;
+unsigned targetColorRT;
+
+// MSAA FB
+unsigned msaaFB;
+unsigned msaaColorRB;
+
+// when we enable AA for non-native resolution we need interim RT to resolve AA to (and then we will blit it to screen)
+UnityRenderBufferHandle resolvedColorBuffer;
+
+// will be "shared", only one depth buffer is needed
+unsigned depthRB;
+
+// render surface gl setup: formats and AA
+unsigned colorFormat;
+unsigned depthFormat;
+END_STRUCT(UnityDisplaySurfaceGLES)
+
+// Metal display surface
+START_STRUCT(UnityDisplaySurfaceMTL, UnityDisplaySurfaceBase)
+OBJC_OBJECT_PTR CAMetalLayer * layer;
+OBJC_OBJECT_PTR MTLDeviceRef device;
+
+OBJC_OBJECT_PTR MTLCommandQueueRef commandQueue;
+OBJC_OBJECT_PTR CAMetalDrawableRef drawable;
+
+OBJC_OBJECT_PTR MTLTextureRef systemColorRB;
+OBJC_OBJECT_PTR MTLTextureRef targetColorRT;
+OBJC_OBJECT_PTR MTLTextureRef targetAAColorRT;
+
+OBJC_OBJECT_PTR MTLTextureRef depthRB;
+OBJC_OBJECT_PTR MTLTextureRef stencilRB;
+
+unsigned colorFormat; // [MTLPixelFormat]
+unsigned depthFormat; // [MTLPixelFormat]
+END_STRUCT(UnityDisplaySurfaceMTL)
+
+// START_STRUCT confuse clang c compiler (though it is idiomatic c code that works)
+#pragma clang diagnostic pop
+
+// be aware that this enum is shared with unity implementation so you should absolutely not change it
+typedef enum
+ UnityRenderingAPI
+{
+ apiOpenGLES2 = 2,
+ apiOpenGLES3 = 3,
+ apiMetal = 4,
+}
+UnityRenderingAPI;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+int UnitySelectedRenderingAPI();
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+// gles
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void InitRenderingGLES();
+
+void CreateSystemRenderingSurfaceGLES(UnityDisplaySurfaceGLES* surface);
+void DestroySystemRenderingSurfaceGLES(UnityDisplaySurfaceGLES* surface);
+void CreateRenderingSurfaceGLES(UnityDisplaySurfaceGLES* surface);
+void DestroyRenderingSurfaceGLES(UnityDisplaySurfaceGLES* surface);
+void CreateSharedDepthbufferGLES(UnityDisplaySurfaceGLES* surface);
+void DestroySharedDepthbufferGLES(UnityDisplaySurfaceGLES* surface);
+void CreateUnityRenderBuffersGLES(UnityDisplaySurfaceGLES* surface);
+void DestroyUnityRenderBuffersGLES(UnityDisplaySurfaceGLES* surface);
+void StartFrameRenderingGLES(UnityDisplaySurfaceGLES* surface);
+void EndFrameRenderingGLES(UnityDisplaySurfaceGLES* surface);
+void PreparePresentGLES(UnityDisplaySurfaceGLES* surface);
+void PresentGLES(UnityDisplaySurfaceGLES* surface);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+// metal
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void InitRenderingMTL();
+
+void CreateSystemRenderingSurfaceMTL(UnityDisplaySurfaceMTL* surface);
+void DestroySystemRenderingSurfaceMTL(UnityDisplaySurfaceMTL* surface);
+void CreateRenderingSurfaceMTL(UnityDisplaySurfaceMTL* surface);
+void DestroyRenderingSurfaceMTL(UnityDisplaySurfaceMTL* surface);
+void CreateSharedDepthbufferMTL(UnityDisplaySurfaceMTL* surface);
+void DestroySharedDepthbufferMTL(UnityDisplaySurfaceMTL* surface);
+void CreateUnityRenderBuffersMTL(UnityDisplaySurfaceMTL* surface);
+void DestroyUnityRenderBuffersMTL(UnityDisplaySurfaceMTL* surface);
+void StartFrameRenderingMTL(UnityDisplaySurfaceMTL* surface);
+void EndFrameRenderingMTL(UnityDisplaySurfaceMTL* surface);
+void PreparePresentMTL(UnityDisplaySurfaceMTL* surface);
+void PresentMTL(UnityDisplaySurfaceMTL* surface);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// for Create* functions if surf is null we will actuially create new one, otherwise we update the one provided
+// gles: one and only one of texid/rbid should be non-zero
+// metal: resolveTex should be non-nil only if tex have AA
+UnityRenderBufferHandle UnityCreateExternalSurfaceGLES(UnityRenderBufferHandle surf, int isColor, unsigned texid, unsigned rbid, unsigned glesFormat, const UnityRenderBufferDesc* desc);
+UnityRenderBufferHandle UnityCreateExternalSurfaceMTL(UnityRenderBufferHandle surf, int isColor, MTLTextureRef tex, const UnityRenderBufferDesc* desc);
+UnityRenderBufferHandle UnityCreateExternalColorSurfaceMTL(UnityRenderBufferHandle surf, MTLTextureRef tex, MTLTextureRef resolveTex, const UnityRenderBufferDesc* desc);
+UnityRenderBufferHandle UnityCreateExternalDepthSurfaceMTL(UnityRenderBufferHandle surf, MTLTextureRef tex, MTLTextureRef stencilTex, const UnityRenderBufferDesc* desc);
+// creates "dummy" surface - will indicate "missing" buffer (e.g. depth-only RT will have color as dummy)
+UnityRenderBufferHandle UnityCreateDummySurface(UnityRenderBufferHandle surf, int isColor, const UnityRenderBufferDesc* desc);
+
+// disable rendering to render buffers (all Cameras that were rendering to one of buffers would be reset to use backbuffer)
+void UnityDisableRenderBuffers(UnityRenderBufferHandle color, UnityRenderBufferHandle depth);
+// destroys render buffer
+void UnityDestroyExternalSurface(UnityRenderBufferHandle surf);
+// sets current render target
+void UnitySetRenderTarget(UnityRenderBufferHandle color, UnityRenderBufferHandle depth);
+// final blit to backbuffer
+void UnityBlitToBackbuffer(UnityRenderBufferHandle srcColor, UnityRenderBufferHandle dstColor, UnityRenderBufferHandle dstDepth);
+// get native renderbuffer from handle
+UnityRenderBufferHandle UnityNativeRenderBufferFromHandle(void *rb);
+
+MTLCommandBufferRef UnityCurrentMTLCommandBuffer();
+
+// sets vSync on OSX 10.13 and up
+#if PLATFORM_OSX
+void MetalUpdateDisplaySync();
+#endif
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+// metal/gles unification
+
+#define GLES_METAL_COMMON_IMPL_SURF(f) \
+inline void f(UnityDisplaySurfaceBase* surface) \
+{ \
+ if(surface->api == apiMetal) f ## MTL((UnityDisplaySurfaceMTL*)surface); \
+ else f ## GLES((UnityDisplaySurfaceGLES*)surface);\
+} \
+
+#define GLES_METAL_COMMON_IMPL(f) \
+inline void f() \
+{ \
+ if(UnitySelectedRenderingAPI() == apiMetal) f ## MTL(); \
+ else f ## GLES();\
+} \
+
+
+GLES_METAL_COMMON_IMPL(InitRendering);
+
+GLES_METAL_COMMON_IMPL_SURF(CreateSystemRenderingSurface);
+GLES_METAL_COMMON_IMPL_SURF(DestroySystemRenderingSurface);
+GLES_METAL_COMMON_IMPL_SURF(CreateRenderingSurface);
+GLES_METAL_COMMON_IMPL_SURF(DestroyRenderingSurface);
+GLES_METAL_COMMON_IMPL_SURF(CreateSharedDepthbuffer);
+GLES_METAL_COMMON_IMPL_SURF(DestroySharedDepthbuffer);
+GLES_METAL_COMMON_IMPL_SURF(CreateUnityRenderBuffers);
+GLES_METAL_COMMON_IMPL_SURF(DestroyUnityRenderBuffers);
+GLES_METAL_COMMON_IMPL_SURF(StartFrameRendering);
+GLES_METAL_COMMON_IMPL_SURF(EndFrameRendering);
+GLES_METAL_COMMON_IMPL_SURF(PreparePresent);
+GLES_METAL_COMMON_IMPL_SURF(Present);
+
+#undef GLES_METAL_COMMON_IMPL_SURF
+#undef GLES_METAL_COMMON_IMPL
diff --git a/frameworks/ElvaChatServiceSDK.framework/Info.plist b/frameworks/ElvaChatServiceSDK.framework/Info.plist
index 30532cc..57382d6 100755
--- a/frameworks/ElvaChatServiceSDK.framework/Info.plist
+++ b/frameworks/ElvaChatServiceSDK.framework/Info.plist
Binary files differ
diff --git a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeDirectory b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeDirectory
index ee76d40..7ed9090 100755
--- a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeDirectory
+++ b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeRequirements-1 b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeRequirements-1
index bbb61a8..ef63297 100755
--- a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeRequirements-1
+++ b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeRequirements-1
Binary files differ
diff --git a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeResources b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeResources
index 3a133b6..0b764ff 100755
--- a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeResources
+++ b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeResources
@@ -6,15 +6,27 @@
<dict>
<key>Headers/ECServiceSdk.h</key>
<data>
- +czpHCKr0RyN3ZZ46mtvHeSIOD4=
+ R7uVHQdO3BB2h54BiyZU7f45TXE=
</data>
<key>Headers/ElvaChatServiceSDK.h</key>
<data>
zvjJNXUq1tMPygHWKxbHcw+t/to=
</data>
+ <key>Headers/UnityForwardDecls.h</key>
+ <data>
+ EoGij/5BmK7cWWbj+ECBEyHcipw=
+ </data>
+ <key>Headers/UnityInterface.h</key>
+ <data>
+ P/sjx4YTcqreb+VGlwJdSXt3mew=
+ </data>
+ <key>Headers/UnityRendering.h</key>
+ <data>
+ tpS6Ojd+1vYtSX3a9iHqKBisk70=
+ </data>
<key>Info.plist</key>
<data>
- 3mH5tyPn2toa9mnARefTzdvyHQY=
+ aPsZodAxj3+lEfZDw7gcQlZ9RzY=
</data>
<key>Modules/module.modulemap</key>
<data>
@@ -27,11 +39,11 @@
<dict>
<key>hash</key>
<data>
- +czpHCKr0RyN3ZZ46mtvHeSIOD4=
+ R7uVHQdO3BB2h54BiyZU7f45TXE=
</data>
<key>hash2</key>
<data>
- saI0SnEo/pnmeOVrQSZun3u7n87KjNwuJ/CPvUX4t6g=
+ 0KWDBFl6RcB7XrS9PcZavOPm8G/WIh71auQmj5qgQQg=
</data>
</dict>
<key>Headers/ElvaChatServiceSDK.h</key>
@@ -45,6 +57,39 @@
E5u6tslHRsk1y/hRCzNYA+Y7hUk9TOeyzXU8+CH94kM=
</data>
</dict>
+ <key>Headers/UnityForwardDecls.h</key>
+ <dict>
+ <key>hash</key>
+ <data>
+ EoGij/5BmK7cWWbj+ECBEyHcipw=
+ </data>
+ <key>hash2</key>
+ <data>
+ qGe/u1NQdJ0ozw4DJssg4Hf7XQAr3Nhq38AtL5lBFCc=
+ </data>
+ </dict>
+ <key>Headers/UnityInterface.h</key>
+ <dict>
+ <key>hash</key>
+ <data>
+ P/sjx4YTcqreb+VGlwJdSXt3mew=
+ </data>
+ <key>hash2</key>
+ <data>
+ 1YyuYhkj1P+cTNpiFzPHUDv5xbwuaaoRor5YNa5ch4w=
+ </data>
+ </dict>
+ <key>Headers/UnityRendering.h</key>
+ <dict>
+ <key>hash</key>
+ <data>
+ tpS6Ojd+1vYtSX3a9iHqKBisk70=
+ </data>
+ <key>hash2</key>
+ <data>
+ 2za8ddck31K1kpTAgJkI63QlousiGlaiXPRV/mtdEYw=
+ </data>
+ </dict>
<key>Modules/module.modulemap</key>
<dict>
<key>hash</key>
diff --git a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeSignature b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeSignature
index 0255f48..78cb55b 100755
--- a/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeSignature
+++ b/frameworks/ElvaChatServiceSDK.framework/_CodeSignature/CodeSignature
Binary files differ
diff --git a/frameworks/WAAIhelpImpl.framework/Headers/WAAIhelpImpl.h b/frameworks/WAAIhelpImpl.framework/Headers/WAAIhelpImpl.h
index dceae9a..a79733d 100644
--- a/frameworks/WAAIhelpImpl.framework/Headers/WAAIhelpImpl.h
+++ b/frameworks/WAAIhelpImpl.framework/Headers/WAAIhelpImpl.h
@@ -16,4 +16,4 @@
// In this header, you should import all the public headers of your framework using statements like #import <WAAIhelpImpl/PublicHeader.h>
-//time:2018/8/27 14:57 ver:3.7.0
+//time:2019/01/15 12:30 ver:3.8.0
diff --git a/frameworks/WAAIhelpImpl.framework/Info.plist b/frameworks/WAAIhelpImpl.framework/Info.plist
index b9819f2..22676cf 100644
--- a/frameworks/WAAIhelpImpl.framework/Info.plist
+++ b/frameworks/WAAIhelpImpl.framework/Info.plist
Binary files differ
diff --git a/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl b/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl
index a51d08a..e43ab9e 100644
--- a/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl
+++ b/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl
Binary files differ
diff --git a/res/ElvaChatServiceSDK.bundle/ab_reward.png b/res/ElvaChatServiceSDK.bundle/ab_reward.png
new file mode 100755
index 0000000..b0524cc
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/ab_reward.png
Binary files differ
diff --git a/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings
index 3e516cc..a627a51 100755
--- a/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "اتصل بنا";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="هل وجدت هذا مُفيداً.";
-"elva__mark_no"="لا";
-"elva__mark_unhelpful_toast"="أنت لم تجد هذا مُفيداً.";
-"elva__mark_yes"="أجل";
-"elva__mark_yes_no_question"="هل كان هذا مُفيداً؟";
-"content_too_long"="No more than %ld chars!";
+//阿拉伯语ar
+"content_too_long"="لا تستخدم أكثر من %ld رمزا";
+"ContactCustomerService" = "اِتصل بنا";
+"self_service_interface" = "خدمة ذاتية";
+"offLine"= "لقد انفصلت الشبكة. يرجى المحاولة مجددا لاحقا";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="تم تأكيد السؤال مُفيدا";
+"elva__mark_unhelpful_toast"="تم تعيين السؤال غير مفيد";
+"elva__mark_yes_no_question"="هل كان هذا مفيدا؟";
+"elva__mark_no"="لا";
+"elva__mark_yes"="نعم";
+"RewardBalance"="رموزك";
+"GoTo" = "اتجه الى";
+"Forum" = "منتدى الأسئلة و الإجابات";
+"RewardSuccess" = "نجاج";
+"RewardFailure" = "فشل";
+"TokenInsufficient" = "الرموز الخاصة بك غير كافية";
+"NeedMoreHelp" = "هل تريد المزيد من المساعدة؟";
diff --git a/res/ElvaChatServiceSDK.bundle/checkbox_checked.png b/res/ElvaChatServiceSDK.bundle/checkbox_checked.png
new file mode 100755
index 0000000..9bbea3d
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/checkbox_checked.png
Binary files differ
diff --git a/res/ElvaChatServiceSDK.bundle/checkbox_unchecked.png b/res/ElvaChatServiceSDK.bundle/checkbox_unchecked.png
new file mode 100755
index 0000000..331c089
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/checkbox_unchecked.png
Binary files differ
diff --git a/res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings
new file mode 100755
index 0000000..cbd1a0b
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings
@@ -0,0 +1,24 @@
+//德语de,de-AT,de-CH,de-DE,de-LI,de-LU
+"content_too_long"="Nicht mehr al%ld Zeichen!";
+"ContactCustomerService" = "Kontaktieren uns";
+"self_service_interface" = "Selbst-Service";
+"offLine"= "Ihr Netzwerk ist getrennt, bitte versuchen Sie es später noch einmal";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Sie fanden es hilfreich.";
+"elva__mark_unhelpful_toast"="Sie finden es nicht hilfreich.";
+"elva__mark_yes_no_question"="Hilft das?";
+"elva__mark_no"="Nein";
+"elva__mark_yes"="Ja";
+"RewardBalance"="Ihre Tokens:";
+"GoTo" = "Gehen in die";
+"Forum" = "Gemeinschaft der Fragen und Antworten";
+"RewardSuccess" = "Erfolg";
+"RewardFailure" = "Fehlgeschlagen";
+"TokenInsufficient" = "Tokens reichen nicht aus";
+"NeedMoreHelp" = "Benötigen weitere Hilfe?";
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings
new file mode 100755
index 0000000..72a9d2d
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings
@@ -0,0 +1,32 @@
+//希腊语el-GR,el-CY
+"content_too_long"="Δεν μπορείτε να ξεπεράσετε τους %ld χαρακτήρες!";
+"ContactCustomerService" = "Επικοινωνήστε μας";
+"self_service_interface" = "Σελφ σέρβις";
+"offLine"= "Το δίκτυό σας αποσυνδέθηκε, παρακαλώ προσπαθήστε αργότερα!";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Σας βοήθησε";
+"elva__mark_unhelpful_toast"="Δεν σας βοήθησε";
+"elva__mark_yes_no_question"="Σας βοήθησε;";
+"elva__mark_no"="Όχι";
+"elva__mark_yes"="Ναι";
+"RewardBalance"="Το υπόλοιπο των πόντων σας:";
+"GoTo" = "Μέχρι";
+"Forum" = "Φόρουμ ερωτήσεων και απαντήσεων";
+"RewardSuccess" = "Επιτυχής ανταμοιβή";
+"RewardFailure" = "Αποτυχής ανταμοιβή";
+"TokenInsufficient" = "Το υπόλοιπό σας δεν επαρκεί";
+"NeedMoreHelp" = "Χρειάζεστε βοήθεια?";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings
index 619512d..72509ac 100755
--- a/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "Contact Us";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="You find this helpful";
-"elva__mark_no"="NO";
-"elva__mark_unhelpful_toast"="You didn't find this helpful";
-"elva__mark_yes"="YES";
-"elva__mark_yes_no_question"="Was this helpful?";
+//英语en
"content_too_long"="No more than %ld chars!";
+"ContactCustomerService" = "Contact Us";
+"self_service_interface" = "Self-Service";
+"offLine"= "Your network is disconnected,please try again later";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="You found this helpful";
+"elva__mark_unhelpful_toast"="You didn't find this helpful";
+"elva__mark_yes_no_question"="Was this helpful?";
+"elva__mark_no"="NO";
+"elva__mark_yes"="YES";
+"RewardBalance"="Your tokens:";
+"GoTo" = "Go to the";
+"Forum" = "QA Forum";
+"RewardSuccess" = "Success";
+"RewardFailure" = "Failed";
+"TokenInsufficient" = "Your tokens is insufficient";
+"NeedMoreHelp" = "Need more help?";
diff --git a/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings
index f6cddd0..b6dce23 100755
--- a/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
+//西班牙语es
+"content_too_long"="No más de %ld caracteres!";
"ContactCustomerService" = "CONTÁCTANOS";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="Le resultó útil";
-"elva__mark_no"="NO";
-"elva__mark_unhelpful_toast"="No le resultó útil";
-"elva__mark_yes"="Sí";
-"elva__mark_yes_no_question"="¿Sirvió de ayuda";
-"content_too_long"="No more than %ld chars!";
+"self_service_interface" = "Autoservicio";
+"offLine"= "Su red está desconectada, inténtelo de nuevo más tarde.";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Le resultó útil";
+"elva__mark_unhelpful_toast"="No le resultó útil";
+"elva__mark_yes_no_question"="¿Sirvió de ayuda";
+"elva__mark_no"="NO";
+"elva__mark_yes"="Sí";
+"RewardBalance"="Sus puntos:";
+"GoTo" = "Ir a";
+"Forum" = "Foro de QA";
+"RewardSuccess" = "Éxito";
+"RewardFailure" = "Ha fallado";
+"TokenInsufficient" = "Sus puntos son insuficientes";
+"NeedMoreHelp" = "Necesitas más ayuda?";
diff --git a/res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings
new file mode 100755
index 0000000..fbbcfc2
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings
@@ -0,0 +1,32 @@
+//法斯语fa,fa-IR
+"content_too_long"="نباید از %ld حروف بیشتر باشد.";
+"ContactCustomerService" = "با ما تماس بگیرید";
+"self_service_interface" = "پشتیبانی";
+"offLine"= "اینترنت شما قطع می باشد ، لطفا بعدا امتحان کنید.";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="این کمک مفیدی بود";
+"elva__mark_unhelpful_toast"="کمک مفیدی نبود";
+"elva__mark_yes_no_question"="آیا این مفید بود؟";
+"elva__mark_no"="نه";
+"elva__mark_yes"="بله";
+"RewardBalance"="امتیاز باقیمانده شما";
+"GoTo" = "برو به";
+"Forum" = "گروه پرسش و پاسخ";
+"RewardSuccess" = "موفقیت آمیز";
+"RewardFailure" = "ناموفق";
+"TokenInsufficient" = "امتیاز شما کافی نیست .";
+"NeedMoreHelp" = "نیاز به کمک بیشتری دارید؟";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings
new file mode 100755
index 0000000..a574754
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings
@@ -0,0 +1,24 @@
+//法语fr,fr-FRfr-BE,fr-CA,fr-CH,fr-FR,fr-LU,fr-MC
+"content_too_long"="Pas plus de %ld de caractères";
+"ContactCustomerService" = "Contactez-nous";
+"self_service_interface" = "Libre service";
+"offLine"= "Votre connexion ne fonctionne pas, veuillez essayer de nouveau";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Est ce que cela vous aidé";
+"elva__mark_unhelpful_toast"="Vous n'avez pas trouvez cela utile";
+"elva__mark_yes_no_question"="Est-ce que cela a été utile?";
+"elva__mark_no"="Non";
+"elva__mark_yes"="Oui";
+"RewardBalance"="Vos jetons";
+"GoTo" = "Allez à";
+"Forum" = "FAQ";
+"RewardSuccess" = "Succès";
+"RewardFailure" = "Echec";
+"TokenInsufficient" = "Jeton insuffisant";
+"NeedMoreHelp" = "Besoin d'aide?";
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings
new file mode 100755
index 0000000..658b119
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings
@@ -0,0 +1,18 @@
+//印度尼西亚语id,id-ID
+"content_too_long"="Tidak dapat melebihi %ld karakter!";
+"ContactCustomerService" = "Hubungi Kami";
+"self_service_interface" = "Self-Service";
+"offLine"= "Koneksi internet anda terputus, harap coba beberapa saat lagi";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Anda merasa terbantu";
+"elva__mark_unhelpful_toast"="Anda merasa tidak terbantu";
+"elva__mark_yes_no_question"="Apakah ini membantu?";
+"elva__mark_no"="TIDAK";
+"elva__mark_yes"="YA";
+"RewardBalance"="Token Anda:";
+"GoTo" = "Pergi ke";
+"Forum" = "Forum Q&A";
+"RewardSuccess" = "Berhasil";
+"RewardFailure" = "Gagal";
+"TokenInsufficient" = "Saldo token Anda tidak mencukupi";
+"NeedMoreHelp" = "butuh lebih bantuan?";
diff --git a/res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings
new file mode 100755
index 0000000..acc7931
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings
@@ -0,0 +1,32 @@
+//意大利语it,it-CH,it-IT
+"content_too_long"="Non più di %ld caratteri!";
+"ContactCustomerService" = "Contattaci";
+"self_service_interface" = "Self Service";
+"offLine"= "Il tuo collegamento si è interrotto, si prega di effettuare nuovamente l'accesso!";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Lo hai trovato utile";
+"elva__mark_unhelpful_toast"="Lo hai trovato inutile";
+"elva__mark_yes_no_question"="Questo è utile?";
+"elva__mark_no"="No";
+"elva__mark_yes"="Si";
+"RewardBalance"="Il tuo bilancio punti:";
+"GoTo" = "Fino a";
+"Forum" = "Spazio domande";
+"RewardSuccess" = "Premiazione riuscita";
+"RewardFailure" = "Premiazione fallita";
+"TokenInsufficient" = "Bilancio insufficiente";
+"NeedMoreHelp" = "Serve ancora aiuto?";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings
index c1805dd..eb6e5e2 100755
--- a/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
+//日语ja
+"content_too_long"="%ld文字を超えてはならない!";
"ContactCustomerService" = "お問い合わせ";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="役に立ちました";
-"elva__mark_no"="いいえ";
-"elva__mark_unhelpful_toast"="役に立たなかった";
-"elva__mark_yes"="はい";
-"elva__mark_yes_no_question"="お役に立ちましたか";
-"content_too_long"="No more than %ld chars!";
+"self_service_interface" = "セルフサービス";
+"offLine"= "ネットのアクセスがエラー発生しました、もう一度やり直してください!";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="役に立ったと評価されました";
+"elva__mark_unhelpful_toast"="役に立たなかったと評価されました";
+"elva__mark_yes_no_question"="お役に立ちましたか?";
+"elva__mark_no"="いいえ";
+"elva__mark_yes"="はい";
+"RewardBalance"="ポイント残高";
+"GoTo" = "に行く";
+"Forum" = "QAフォーム";
+"RewardSuccess" = "奨励成功";
+"RewardFailure" = "奨励失敗";
+"TokenInsufficient" = "残高が足りません";
+"NeedMoreHelp" = "他の質問もある?";
diff --git a/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings
index 3468c93..a5cc241 100755
--- a/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
+//韩语ko
+"content_too_long"="%ld 단어를 초과 할 수 없습니다!";
"ContactCustomerService" = "연락하기";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="도움이 되는 내용입니다";
-"elva__mark_no"="아니요";
-"elva__mark_unhelpful_toast"="도움이 안 되요";
-"elva__mark_yes"="예";
-"elva__mark_yes_no_question"="도움이 되는 내용인가요";
-"content_too_long"="No more than %ld chars!";
+"self_service_interface" = "셀프 서비스";
+"offLine"= "네트워크 연결이 끊어졌습니다. 나중에 다시 시도하십시오.";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="질문이 도움이 되었다고 표시되었습니다";
+"elva__mark_unhelpful_toast"="질문이 도움이 되지 않았다고 표시되었습니다";
+"elva__mark_yes_no_question"="이 내용이 유용했나요?";
+"elva__mark_no"="아니요";
+"elva__mark_yes"="예";
+"RewardBalance"="포인트 잔고:";
+"GoTo" = "가기";
+"Forum" = "Q&A 커뮤니티";
+"RewardSuccess" = "성공";
+"RewardFailure" = "실패";
+"TokenInsufficient" = "토큰이 부족합니다.";
+"NeedMoreHelp" = "도움이 더 필요하십니까?";
diff --git a/res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings
new file mode 100755
index 0000000..dd94a13
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings
@@ -0,0 +1,32 @@
+//波兰语pl,pl-PL
+"content_too_long"="Nie więcej niż %ld znaków!";
+"ContactCustomerService" = "Obsługa klienta";
+"self_service_interface" = "Samoobsługa";
+"offLine"= "Brak dostępu do sieci, proszę spróbuj ponownie później.";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Uznałeś to za przydatne.";
+"elva__mark_unhelpful_toast"="Nie uznałeś tego za przydatne.";
+"elva__mark_yes_no_question"="Czy było to przydatne?";
+"elva__mark_no"="Nie";
+"elva__mark_yes"="Tak";
+"RewardBalance"="Twój bilans punktów:";
+"GoTo" = "Idź do";
+"Forum" = "Forum pytań i odpowiedzi.";
+"RewardSuccess" = "Sukces.";
+"RewardFailure" = "Porażka.";
+"TokenInsufficient" = "Niewystarczająca ilość punktów.";
+"NeedMoreHelp" = "Bisogno Di Più Aiuto?";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings
new file mode 100755
index 0000000..f90698c
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings
@@ -0,0 +1,24 @@
+//葡萄牙语pt,pt-BR,pt-PT
+"content_too_long"="Não pode ser mais de %ld palavras!";
+"ContactCustomerService" = "Contate-Nos";
+"self_service_interface" = "Self-Service";
+"offLine"= "Sua conexão foi desconectada, entre novamente!";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Isso é útil";
+"elva__mark_unhelpful_toast"="Isso não é útil";
+"elva__mark_yes_no_question"="É útil?";
+"elva__mark_no"="Não";
+"elva__mark_yes"="Sim";
+"RewardBalance"="Seus saldos de ponto:";
+"GoTo" = "Chegar";
+"Forum" = "Comunidade de pergunta e resposta";
+"RewardSuccess" = "Recompense com sucesso";
+"RewardFailure" = "Recompense não com sucesso";
+"TokenInsufficient" = "Saldos insuficientes";
+"NeedMoreHelp" = "Precisa mais ajuda?";
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings
index b74cae3..c336917 100755
--- a/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "Связаться с Нами";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="Вы считаете это полезным";
-"elva__mark_no"="НЕТ";
-"elva__mark_unhelpful_toast"="Вам это не помогло";
-"elva__mark_yes"="ДА";
-"elva__mark_yes_no_question"="Это было полезно";
-"content_too_long"="No more than %ld chars!";
+//俄语ru
+"content_too_long"="Не более %ld символов!";
+"ContactCustomerService" = "Свяжитесь с нами";
+"self_service_interface" = "Самообслуживание";
+"offLine"= "Вы не подключены к сети, повторите попытку позже";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Вопрос был обозначен как Полезный";
+"elva__mark_unhelpful_toast"="Вопрос был обозначен как Бесполезный";
+"elva__mark_yes_no_question"="Это вам помогло?";
+"elva__mark_no"="НЕТ";
+"elva__mark_yes"="ДА";
+"RewardBalance"="Остаток баллов:";
+"GoTo" = "Перейти";
+"Forum" = "QA форум";
+"RewardSuccess" = "Успешно";
+"RewardFailure" = "Неудачно";
+"TokenInsufficient" = "Недостаточно баллов";
+"NeedMoreHelp" = "Нужна помощь?";
diff --git a/res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings
new file mode 100755
index 0000000..59dc1f8
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings
@@ -0,0 +1,24 @@
+//瑞典语sv,sv-FI,sv-SE
+"content_too_long"="Får inte vara längre än %ld tecken!";
+"ContactCustomerService" = "Kontakta KS";
+"self_service_interface" = "Självservice";
+"offLine"= "Anslutning bruten, försök igen!";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Fick du hjälp av detta?";
+"elva__mark_unhelpful_toast"="Fick du inte hjälp av detta?";
+"elva__mark_yes_no_question"="Fick du hjälp av detta?";
+"elva__mark_no"="Nej";
+"elva__mark_yes"="Ja";
+"RewardBalance"="Dina poäng:";
+"GoTo" = "Gå till";
+"Forum" = "Frågeforum";
+"RewardSuccess" = "Lyckades";
+"RewardFailure" = "Misslyckades";
+"TokenInsufficient" = "Du har inte tillräckligt med poäng";
+"NeedMoreHelp" = "Behöver mer hjälp?";
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings
index afda17b..f49c196 100755
--- a/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
+//泰语th
+"content_too_long"="ไม่เกิน %ld ตัวอักษร!";
"ContactCustomerService" = "ติดต่อเรา";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="มีประโยชน์สำหรับคุณ";
-"elva__mark_no"="ไม่ใช่";
-"elva__mark_unhelpful_toast"="ไม่มีประโยชน์สำหรับคุณ";
-"elva__mark_yes"="ใช่";
-"elva__mark_yes_no_question"="ข้อมูลดังกล่าวมีประโยชน์หรือไม่";
-"content_too_long"="No more than %ld chars!";
+"self_service_interface" = "Self-Service";
+"offLine"= "การเชื่อมต่อผิดพลาด กรุณาเข้าระบบอีกครั้ง!";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="คำถามนี้ถูกระบุว่ามีประโยชน์";
+"elva__mark_unhelpful_toast"="คำถามนี้ถูกระบุว่าไม่มีประโยชน์";
+"elva__mark_yes_no_question"="ข้อมูลดังกล่าวมีประโยชน์หรือไม่";
+"elva__mark_no"="ไม่ใช่";
+"elva__mark_yes"="ใช่";
+"RewardBalance"="แต้มของคุณเหลือ:";
+"GoTo" = "ถึง";
+"Forum" = "ถามตอบ";
+"RewardSuccess" = "ให้รางวัลสำเร็จ";
+"RewardFailure" = "ให้รางวัลล้มเหลว";
+"TokenInsufficient" = "จำนวนคงเหลือไม่พอ";
+"NeedMoreHelp" = "ต้องการความช่วยเหลือ?";
diff --git a/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings
index 69d83a5..07c6bca 100755
--- a/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Bağlantı hatası, lütfen tekrar deneyin!";
+//土耳其语tr
+"content_too_long"="En fazla %ld karakter kullanılabilir!";
"ContactCustomerService" = "İletişim";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Bunu faydalı buldunuz mu?";
-"NO"="Hayır";
-"YES"="Evet";
-"elva__mark_helpful_toast"="Bunu faydalı buldum!";
-"elva__mark_no"="Hayır";
-"elva__mark_unhelpful_toast"="Bunu faydalı bulmadım!";
-"elva__mark_yes"="Evet";
-"elva__mark_yes_no_question"="Bunu faydalı buldunuz mu?";
-"content_too_long"="Maks %ld karakter kullanılabilir!";
+"self_service_interface" = "Kendin Hallet";
+"offLine"= "Bağlantı hatası,lütfen tekrar deneyin!";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Bunu faydalı buldum!";
+"elva__mark_unhelpful_toast"="Bunu faydalı bulmadım!";
+"elva__mark_yes_no_question"="Bunu faydalı buldunuz mu?";
+"elva__mark_no"="Hayır";
+"elva__mark_yes"="Evet";
+"RewardBalance"="Puanınız:";
+"GoTo" = "Git:";
+"Forum" = "Sıkça Sorulan Sorular";
+"RewardSuccess" = "Başarılı!";
+"RewardFailure" = "Başarısız!";
+"TokenInsufficient" = "Bakiyeniz yetersiz!";
+"NeedMoreHelp" = "Ihtiyacınız yardıma?";
diff --git a/res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings
new file mode 100755
index 0000000..6854988
--- /dev/null
+++ b/res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings
@@ -0,0 +1,24 @@
+//越南语vi,vi-VN
+"content_too_long"="Không vượt quá %ld ký tự!";
+"ContactCustomerService" = "Liên hệ CSKH";
+"self_service_interface" = "Dịch vụ tự động";
+"offLine"= "Đã mất kết nối, hãy vào lại!";
+"CustomerService"="HELP";
+"elva__mark_helpful_toast"="Phát hiện có hỗ trợ";
+"elva__mark_unhelpful_toast"="Phát hiện không có hỗ trợ";
+"elva__mark_yes_no_question"="Ở đây có hỗ trợ không?";
+"elva__mark_no"="Không";
+"elva__mark_yes"="Có";
+"RewardBalance"="Tích điểm còn:";
+"GoTo" = "Đến";
+"Forum" = "Cộng đồng hỏi đáp";
+"RewardSuccess" = "Thưởng thành công";
+"RewardFailure" = "Thưởng thất bại";
+"TokenInsufficient" = "Không còn đủ";
+"NeedMoreHelp" = "cần thêm giúp?";
+
+
+
+
+
+
diff --git a/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings
index 8838004..eae8113 100755
--- a/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings
@@ -1,23 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "聊天客服";
-"offLine"= "您的链接已经断开,请重新进入!";
-"ContactCustomerService" = "联系我们";
-"self_service_interface" = "自助服务";
-"Message" = "信息";
-"WasHelp"="此信息对您有帮助吗?";
-"NO"="否";
-"YES"="是";
-"elva__mark_helpful_toast"="你发现这有帮助";
-"elva__mark_no"="否";
-"elva__mark_unhelpful_toast"="你发现这无帮助";
-"elva__mark_yes"="是";
-"elva__mark_yes_no_question"="这有帮助吗";
+//中文简体zh-Hans
"content_too_long"="不能超过%ld个字!";
+"ContactCustomerService" = "联系客服";
+"self_service_interface" = "自助服务";
+"offLine"= "您的链接已经断开,请重新进入!";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="你发现这有帮助";
+"elva__mark_unhelpful_toast"="你发现这无帮助";
+"elva__mark_yes_no_question"="这有帮助吗";
+"elva__mark_no"="否";
+"elva__mark_yes"="是";
+"RewardBalance"="您的积分余额:";
+"GoTo" = "到";
+"Forum" = "问答社区";
+"RewardSuccess" = "打赏成功";
+"RewardFailure" = "打赏失败";
+"TokenInsufficient" = "余额不足";
+"NeedMoreHelp" = "需要更多帮助?";
diff --git a/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings
index 79ab746..7724fdc 100755
--- a/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings
+++ b/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings
@@ -1,26 +1,18 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
- */
-
-"ElvaChatService" = "聊天客服";
-
-"offLine"= "您的鏈接已經斷開,請重新進入!";
-
-"ContactCustomerService" = "聯系我們";
-"self_service_interface" = "自助服務";
-
-"Message" = "信息";
-"WasHelp"="此信息對您有幫助嗎?";
-"NO"="否";
-"YES"="是";
-"elva__mark_helpful_toast"="妳發現這有幫助";
-"elva__mark_no"="否";
-"elva__mark_unhelpful_toast"="妳發現這無幫助";
-"elva__mark_yes"="是";
-"elva__mark_yes_no_question"="這有幫助嗎";
+//中文繁体zh-Hant
"content_too_long"="不能超過%ld個字!";
+"ContactCustomerService" = "聯系客服";
+"self_service_interface" = "自助服務";
+"offLine"= "您的連結已經斷開,請重新進入!";
"CustomerService"="HELP";
+"elva__mark_helpful_toast"="妳發現這有幫助";
+"elva__mark_unhelpful_toast"="妳發現這無幫助";
+"elva__mark_yes_no_question"="這有幫助嗎?";
+"elva__mark_no"="否";
+"elva__mark_yes"="是";
+"RewardBalance"="您的積分餘額:";
+"GoTo" = "到";
+"Forum" = "問答社區";
+"RewardSuccess" = "打賞成功";
+"RewardFailure" = "打賞失敗";
+"TokenInsufficient" = "餘額不足";
+"NeedMoreHelp" = "需要更多幫助?";
diff --git a/res/Localization/ar.lproj/Localizable.strings b/res/Localization/ar.lproj/Localizable.strings
deleted file mode 100755
index c8be713..0000000
--- a/res/Localization/ar.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "اِتصل بنا";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="هل وجدت هذا مُفيداً.";
-"elva__mark_no"="لا";
-"elva__mark_unhelpful_toast"="أنت لم تجد هذا مُفيداً.";
-"elva__mark_yes"="أجل";
-"elva__mark_yes_no_question"="هل كان هذا مُفيداً؟";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/en.lproj/Localizable.strings b/res/Localization/en.lproj/Localizable.strings
deleted file mode 100755
index c9ffed4..0000000
--- a/res/Localization/en.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "Contact Us";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="You find this helpful";
-"elva__mark_no"="NO";
-"elva__mark_unhelpful_toast"="You didn't find this helpful";
-"elva__mark_yes"="YES";
-"elva__mark_yes_no_question"="Was this helpful?";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/es.lproj/Localizable.strings b/res/Localization/es.lproj/Localizable.strings
deleted file mode 100755
index 1758951..0000000
--- a/res/Localization/es.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "CONTÁCTANOS";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="Le resultó útil";
-"elva__mark_no"="NO";
-"elva__mark_unhelpful_toast"="No le resultó útil";
-"elva__mark_yes"="Sí";
-"elva__mark_yes_no_question"="¿Sirvió de ayuda";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/ja.lproj/Localizable.strings b/res/Localization/ja.lproj/Localizable.strings
deleted file mode 100755
index 4729ad2..0000000
--- a/res/Localization/ja.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "お問い合わせ";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="役に立ちました";
-"elva__mark_no"="いいえ";
-"elva__mark_unhelpful_toast"="役に立たなかった";
-"elva__mark_yes"="はい";
-"elva__mark_yes_no_question"="お役に立ちましたか";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/ko.lproj/Localizable.strings b/res/Localization/ko.lproj/Localizable.strings
deleted file mode 100755
index ca46a53..0000000
--- a/res/Localization/ko.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "연락하기";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="도움이 되는 내용입니다";
-"elva__mark_no"="아니요";
-"elva__mark_unhelpful_toast"="도움이 안 되요";
-"elva__mark_yes"="예";
-"elva__mark_yes_no_question"="도움이 되는 내용인가요";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/ru.lproj/Localizable.strings b/res/Localization/ru.lproj/Localizable.strings
deleted file mode 100755
index 0f911b2..0000000
--- a/res/Localization/ru.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "Связаться с Нами";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="Вы считаете это полезным";
-"elva__mark_no"="НЕТ";
-"elva__mark_unhelpful_toast"="Вам это не помогло";
-"elva__mark_yes"="ДА";
-"elva__mark_yes_no_question"="Это было полезно";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/th.lproj/Localizable.strings b/res/Localization/th.lproj/Localizable.strings
deleted file mode 100755
index dbfbfab..0000000
--- a/res/Localization/th.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "ElvaChat Service";
-"offLine"="Your network is disconnected,please try again later";
-"ContactCustomerService" = "ติดต่อเรา";
-"self_service_interface"="services";
-"Message" = "Message";
-"WasHelp"="Was this helpful?";
-"NO"="NO";
-"YES"="YES";
-"elva__mark_helpful_toast"="มีประโยชน์สำหรับคุณ";
-"elva__mark_no"="ไม่ใช่";
-"elva__mark_unhelpful_toast"="ไม่มีประโยชน์สำหรับคุณ";
-"elva__mark_yes"="ใช่";
-"elva__mark_yes_no_question"="ข้อมูลดังกล่าวมีประโยชน์หรือไม่";
-"content_too_long"="No more than %ld chars!";
diff --git a/res/Localization/zh-Hans.lproj/Localizable.strings b/res/Localization/zh-Hans.lproj/Localizable.strings
deleted file mode 100755
index a0325a0..0000000
--- a/res/Localization/zh-Hans.lproj/Localizable.strings
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
-*/
-
-"ElvaChatService" = "聊天客服";
-"offLine"= "您的链接已经断开,请重新进入!";
-"ContactCustomerService" = "联系我们";
-"self_service_interface" = "自助服务";
-"Message" = "信息";
-"WasHelp"="此信息对您有帮助吗?";
-"NO"="否";
-"YES"="是";
-"elva__mark_helpful_toast"="你发现这有帮助";
-"elva__mark_no"="否";
-"elva__mark_unhelpful_toast"="你发现这无帮助";
-"elva__mark_yes"="是";
-"elva__mark_yes_no_question"="这有帮助吗";
-"content_too_long"="不能超过%ld个字!";
diff --git a/res/Localization/zh-Hant.lproj/Localizable.strings b/res/Localization/zh-Hant.lproj/Localizable.strings
deleted file mode 100755
index 71b6b04..0000000
--- a/res/Localization/zh-Hant.lproj/Localizable.strings
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- Localizable.strings
- ElvaTestIOS
-
- Created by wwj on 16/5/30.
- Copyright © 2016年 im30. All rights reserved.
- */
-
-"ElvaChatService" = "聊天客服";
-
-"offLine"= "您的鏈接已經斷開,請重新進入!";
-
-"ContactCustomerService" = "聯系我們";
-"self_service_interface" = "自助服務";
-
-"Message" = "信息";
-"WasHelp"="此信息對您有幫助嗎?";
-"NO"="否";
-"YES"="是";
-"elva__mark_helpful_toast"="妳發現這有幫助";
-"elva__mark_no"="否";
-"elva__mark_unhelpful_toast"="妳發現這無幫助";
-"elva__mark_yes"="是";
-"elva__mark_yes_no_question"="這有幫助嗎";
-"content_too_long"="不能超過%ld個字!";
--
Gitblit v1.8.0