zoho / salesiq-mobilisten-android-sample Goto Github PK
View Code? Open in Web Editor NEWSample App to integrate SalesIQ Android SDK (Mobilisten)
Home Page: https://mobilisten.io/
Sample App to integrate SalesIQ Android SDK (Mobilisten)
Home Page: https://mobilisten.io/
Zoho SDK - 3.0
ChatFragment.java line 612
com.zoho.livechat.android.ui.fragments.ChatFragment$1.onReceive
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.zoho.livechat.android.models.SalesIQChat.getRchatid()' on a null object reference
at com.zoho.livechat.android.ui.fragments.ChatFragment$1.onReceive(ChatFragment.java:612)
at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
at androidx.localbroadcastmanager.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:121)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
There is no style related in the documentation, neither the code
Hey,
according to the docs components should explicitly define the android:exported
property in the AndroidManifest.xml
file. I encountered the problem of installing the app using your library on devices targeting Android 12 and I had to manually override your services/receiver (etc) android:exported
property in my app's AndroidManifest.xml
file.
I could not find the source code of salesiq:mobilisten
sdk for Android to create a pull request by myself, so the purpose of this issue is to let you know that these properties should be set in the library code, because you have the best knowledge which components should be exported and which should not.
The only strings that can be changed are the ones in the documentation: https://www.zoho.com/salesiq/help/developer-section/android-mobile-sdk-theme-customization-strings.html but it would be nice to be able to change all texts
After updating to v2.3, we are getting below crash. We have set AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
in our Application class as our app supports API 19. Please look into this issue. Thanks!
Fatal Exception: android.content.res.Resources$NotFoundException: File res/drawable/salesiq_vector_happy.xml from drawable resource ID #0x7f0803f7. If the resource you are trying to use is a vector resource, you may be referencing it in an unsupported way. See AppCompatDelegate.setCompatVectorFromResourcesEnabled() for more info.
at android.content.res.Resources.loadDrawable(Resources.java:3451)
at android.content.res.Resources.getDrawable(Resources.java:1894)
at com.zoho.livechat.android.ui.adapters.viewholder.MessagesFeedbackViewHolder.render(MessagesFeedbackViewHolder.java:73)
at com.zoho.livechat.android.ui.adapters.MessagesAdapter.onBindViewHolder(MessagesAdapter.java:396)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:640)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2151)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1862)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1063)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5993)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(NativeStart.java)
Caused by org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:969)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:913)
at android.content.res.Resources.loadDrawable(Resources.java:3447)
at android.content.res.Resources.getDrawable(Resources.java:1894)
at com.zoho.livechat.android.ui.adapters.viewholder.MessagesFeedbackViewHolder.render(MessagesFeedbackViewHolder.java:73)
at com.zoho.livechat.android.ui.adapters.MessagesAdapter.onBindViewHolder(MessagesAdapter.java:396)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:640)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1692)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1534)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1443)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:15033)
at android.view.ViewGroup.layout(ViewGroup.java:4799)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2151)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1862)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1063)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5993)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5584)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(NativeStart.java)
I implemented your SDK in my app and i handle open chat in some button with below code:
ZohoSalesIQ.registerVisitor(id);
ZohoSalesIQ.Visitor.setEmail(email);
ZohoSalesIQ.Visitor.setName(name);
ZohoSalesIQ.Visitor.setContactNumber(phone);
ZohoSalesIQ.Chat.show();
I inited ZohoSalesIQ
in Application class.
Now when user click on button, for first time nothing happen and in second click, chat open properly .
Someone help me on this pls
Why button not work for first touch?
Getting below error in Zoho Mobilisten SDK. SDK version used in 2.3.1.
Fatal Exception: android.database.CursorWindowAllocationException: Could not allocate CursorWindow '/data/user/0/com.noonEdu.k12App/databases/siq_mobilisten.db' of size 4194304 due to error -12.
at android.database.CursorWindow.nativeCreate(CursorWindow.java)
at android.database.CursorWindow.<init>(CursorWindow.java:145)
at android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:319)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:159)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:152)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:232)
at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:271)
at com.zoho.livechat.android.utils.LiveChatUtil.getLastMessage(LiveChatUtil.java:444)
at com.zoho.livechat.android.ui.fragments.ChatFragment.canEnableSendButton(ChatFragment.java:3470)
at com.zoho.livechat.android.ui.fragments.ChatFragment.setSendInputButtonState(ChatFragment.java:3410)
at com.zoho.livechat.android.ui.fragments.ChatFragment.afterTextChanged(ChatFragment.java:3368)
at android.widget.TextView.sendAfterTextChanged(TextView.java:11664)
at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:14910)
at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1277)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:577)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:507)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:37)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:849)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:199)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:177)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:339)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:89)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7948)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)Fatal Exception: android.database.CursorWindowAllocationException: Could not allocate CursorWindow '/data/user/0/com.noonEdu.k12App/databases/siq_mobilisten.db' of size 4194304 due to error -12.
at android.database.CursorWindow.nativeCreate(CursorWindow.java)
at android.database.CursorWindow.<init>(CursorWindow.java:145)
at android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:319)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:159)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:152)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:232)
at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:271)
at com.zoho.livechat.android.utils.LiveChatUtil.getLastMessage(LiveChatUtil.java:444)
at com.zoho.livechat.android.ui.fragments.ChatFragment.canEnableSendButton(ChatFragment.java:3470)
at com.zoho.livechat.android.ui.fragments.ChatFragment.setSendInputButtonState(ChatFragment.java:3410)
at com.zoho.livechat.android.ui.fragments.ChatFragment.afterTextChanged(ChatFragment.java:3368)
at android.widget.TextView.sendAfterTextChanged(TextView.java:11664)
at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:14910)
at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1277)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:577)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:507)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:37)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:849)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:199)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:177)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:339)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:89)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7948)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
Duplicate class com.bumptech.glide.GeneratedAppGlideModuleImpl found in modules jetified-GlideToVectorYou-v2.0.0-runtime (com.github.corouteam:GlideToVectorYou:v2.0.0) and jetified-mobilisten-4.3.3-runtime (com.zoho.salesiq:mobilisten:4.3.3)
Duplicate class com.bumptech.glide.GeneratedRequestManagerFactory found in modules jetified-GlideToVectorYou-v2.0.0-runtime (com.github.corouteam:GlideToVectorYou:v2.0.0) and jetified-mobilisten-4.3.3-runtime (com.zoho.salesiq:mobilisten:4.3.3)
In the documentation there is no item name refered https://www.zoho.com/salesiq/help/developer-section/android-mobile-sdk-theme-customization-forms.html
And there is no name in the SDK to change the color of the toolbar in that view, it is always blue
With v4.0.1 I am not able to change the colors at all. Did it change the way of changing it and the documentation is not updated?
This simple change is not working
<!-- SalesIQ styles --> <style name="Theme.SalesIQ.Base" parent="Theme.SalesIQ.Light.DarkActionBar"> <item name="siq_launcher_backgroundcolor">@color/myPrimaryColor </item> <item name="siq_launcher_unreadbadge_backgroundcolor">@color/red </item> <item name="siq_launcher_unreadbadge_textcolor">@color/white</item> </style>
Most of the time while selecting proactive bot suggestions either its crashing in chatfragment or the message status is keep on showing "Sending..." and sometime the selection itself is not working attached videos for this.
version com.zoho.salesiq:mobilisten:4.2.2
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.zoho.livechat.android.models.SalesIQForm.getTitle()' on a null object reference
at com.zoho.livechat.android.ui.fragments.ChatFragment.handlePrechatForm(ChatFragment.java:1899)
at com.zoho.livechat.android.ui.fragments.ChatFragment.handleTriggerReplyMessage(ChatFragment.java:1726)
at com.zoho.livechat.android.ui.fragments.ChatFragment.handleSendButtonClick(ChatFragment.java:1511)
at com.zoho.livechat.android.ui.fragments.ChatFragment.onClick(ChatFragment.java:1131)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
After updating to v2.3, we are getting below crash. Please look into this issue. Thanks!
Fatal Exception: java.lang.NullPointerException
at com.zoho.livechat.android.ui.fragments.ChatFragment.onTextChanged(ChatFragment.java:3394)
at android.widget.TextView.sendOnTextChanged(TextView.java:9180)
at android.widget.TextView.handleTextChanged(TextView.java:9277)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:11807)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:970)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:498)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:437)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:30)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:679)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:197)
at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:183)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:279)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5679)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
at dalvik.system.NativeStart.main(NativeStart.java)
Another crash for same code part has been found.
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeMessages(int)' on a null object reference
at com.zoho.livechat.android.ui.fragments.ChatFragment.onTextChanged(ChatFragment.java:3394)
at android.widget.TextView.sendOnTextChanged(TextView.java:9771)
at android.widget.TextView.handleTextChanged(TextView.java:9868)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12576)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1263)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:575)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:506)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:36)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:843)
at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:616)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:396)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6703)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
Could not resolve org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.31.
> Could not get resource 'https://maven.zohodl.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.31/kotlin-stdlib-jdk8-1.3.31.pom'.
> Could not HEAD 'https://maven.zohodl.com/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.31/kotlin-stdlib-jdk8-1.3.31.pom'.
> Connect to maven.zohodl.com:443 [maven.zohodl.com/204.141.42.60] failed: connect timed out
got error when update to com.google.gms:google-services:4.3.8
please update
After updating to v2.3, we are getting below crash. Please look into this issue. Thanks!
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.zoho.livechat.android.models.SalesIQChat.setQuestion(java.lang.String)' on a null object reference
at com.zoho.livechat.android.ui.fragments.ChatFragment.showDepartmentListDialog(ChatFragment.java:1218)
at com.zoho.livechat.android.ui.fragments.ChatFragment.handleTriggerReplyMessage(ChatFragment.java:1577)
at com.zoho.livechat.android.ui.fragments.ChatFragment.handleSendButtonClickNoform(ChatFragment.java:1145)
at com.zoho.livechat.android.ui.fragments.ChatFragment.onClick(ChatFragment.java:940)
at android.view.View.performClick(View.java:5773)
at android.view.View$PerformClick.run(View.java:23035)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:232)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1103)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
After updating to v2.3, we are getting below crash. Please look into this issue. Thanks!
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeMessages(int)' on a null object reference
at com.zoho.livechat.android.ui.fragments.ChatFragment.onTextChanged(ChatFragment.java:3394)
at android.widget.TextView.sendOnTextChanged(TextView.java:9771)
at android.widget.TextView.handleTextChanged(TextView.java:9868)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12576)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1263)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:575)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:506)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:36)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:843)
at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:616)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:396)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6703)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
Getting large number of OutOfMemoryError in TimeOutListener.java after upgrading to 2.3. Please look into this issue. Thanks!
TimeOutListener.java line 85
com.zoho.livechat.android.messaging.wms.common.TimeOutListener.run
Fatal Exception: java.lang.OutOfMemoryError
OutOfMemoryError thrown while trying to throw OutOfMemoryError; no stack trace available
Hello!
My company bought a subscription to security analyze platform. I scaned our Android application that uses salesiq plugin and it found a lot of security issues. I suppose some of them is falsy positive, but kindly check it please. This service has very unpleasant interface, so I can miss something in copy/paste process.
Description: This database query contains a SQL injection flaw. The call to android.content.ContentResolver.update() constructs a dynamic SQL query using a variable derived from untrusted input. An attacker could exploit this flaw to execute arbitrary SQL queries against the database. The second argument to update() contains tainted data. The tainted data originated from an earlier call to java.net.HttpURLConnection.getInputStream.
Remediation: Avoid dynamically constructing SQL queries. Instead, use parameterized prepared statements to prevent the database from interpreting the contents of bind variables as part of the query. Always validate untrusted input to ensure that it conforms to the expected format, using centralized data validation routines when possible.
ReOpen.java:243
ReOpen.java:248
ZohoLDContentProvider.java:124
ZohoLDContentProvider.java:128
ZohoLDContentProvider.java:131
ZohoLDContentProvider.java:134
ZohoLDContentProvider.java:137
ZohoLDContentProvider.java:152
ZohoLDContentProvider.java:157
ZohoLDContentProvider.java:162
ZohoLDContentProvider.java:167
ZohoLDContentProvider.java:173
ZohoLDContentProvider.java:192
ZohoLDContentProvider.java:198
ZohoLDContentProvider.java:205
ZohoLDContentProvider.java:212
ZohoLDContentProvider.java:220
ZohoLDContentProvider.java:67
ZohoLDContentProvider.java:72
ZohoLDContentProvider.java:80
ZohoLDContentProvider.java:87
ZohoLDContentProvider.java:96
Description: This call to android.util.Log.i() could result in a log forging attack. Writing untrusted data into a log file allows an attacker to forge log entries or inject malicious content into log files. Corrupted log files can be used to cover an attacker's tracks or as a delivery mechanism for an attack on a log viewing or processing utility. For example, if a web administrator uses a browser-based utility to review logs, a cross-site scripting attack might be possible. The second argument to i() contains tainted data from the variable p0. The tainted data originated from earlier calls to java.net.HttpURLConnection.getInputStream, java.net.HttpURLConnection.getErrorStream, and android.widget.EditText.getText.
Remediation: Avoid directly embedding user input in log files when possible. Sanitize untrusted data used to construct log entries by using a safe logging mechanism such as the OWASP ESAPI Logger, which will automatically remove unexpected carriage returns and line feeds and can be configured to use HTML entity encoding for non-alphanumeric data. Alternatively, some of the XSS escaping functions from the OWASP Java Encoder project will also sanitize CRLF sequences. Only create a custom blocklist when absolutely necessary. Always validate untrusted input to ensure that it conforms to the expected format, using centralized data validation routines when possible.
LiveChatUtil.java: 2486
Description: The application calls the java.util.zip.GZIPOutputStream.write() function, which will result in data being transferred out of the application (via the network or another medium). This data contains sensitive information. The first argument to write() contains potentially sensitive data. The potentially sensitive data originated from an earlier call to java.io.File.!ctor. The potentially sensitive data is directed into an output stream returned by javax.net.ssl.HttpsURLConnection.getOutputStream, java.net.HttpURLConnection.getOutputStream, and java.io.File.!ctor.
Remediation: Ensure that the transfer of the sensitive data is intended and that it does not violate application security policy. This flaw is categorized as low severity because it only impacts confidentiality, not integrity or availability. However, in the context of a mobile application, the significance of an information leak may be much greater, especially if misaligned with user expectations or data privacy policies.
Description: The apply() method stores sensitive information in unencrypted form, making the data more susceptible to compromise. Generally an attacker needs local access to the system in order to exploit this type of flaw, but if the application is running on a mobile device, files and other resources might be synchronized off the device to locations where they may be compromised through other means.
Remediation: Store all sensitive information in encrypted form.
Description: Standard random number generators do not provide a sufficient amount of entropy when used for security purposes. Attackers can brute force the output of pseudorandom number generators such as rand().
Remediation: If this random number is used where security is a concern, such as generating a session key or session identifier, use a trusted cryptographic random number generator instead. These can be found on the Windows platform in the CryptoAPI or in an open source library such as OpenSSL. In Java, use the SecureRandom object to ensure sufficient entropy.
Description: The program fails to release or incorrectly releases the variable br1, which was previously allocated by a call to java.io.BufferedReader.!operator_javanewinit().
Remediation: Ensure that all code paths properly release this resource.
Description: Explicitly weaker protocol is used as channel encryption protocol. This downgrade to a weaker protocol, could make it easier for attackers to compromise the system.
Remediation: Based on the implementation used, make sure the channel communication is over at least TLS protocol. TLS 1.2 being the most secured option.
After updating to 2.3, getting this below crash. Please look into this issue. Thanks!
Fatal Exception: android.view.InflateException: Binary XML file line #135: Binary XML file line #135: Error inflating class android.widget.EditText
at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479)
at android.app.Dialog.setContentView(Dialog.java:851)
at com.zoho.livechat.android.utils.LiveChatUtil.showFeedbackDialog(LiveChatUtil.java:2567)
at com.zoho.livechat.android.utils.LiveChatUtil$4.run(LiveChatUtil.java:2631)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by android.view.InflateException: Binary XML file line #135: Error inflating class android.widget.EditText
at android.view.LayoutInflater.createView(LayoutInflater.java:657)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479)
at android.app.Dialog.setContentView(Dialog.java:851)
at com.zoho.livechat.android.utils.LiveChatUtil.showFeedbackDialog(LiveChatUtil.java:2567)
at com.zoho.livechat.android.utils.LiveChatUtil$4.run(LiveChatUtil.java:2631)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Constructor.java)
at android.view.LayoutInflater.createView(LayoutInflater.java:631)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479)
at android.app.Dialog.setContentView(Dialog.java:851)
at com.zoho.livechat.android.utils.LiveChatUtil.showFeedbackDialog(LiveChatUtil.java:2567)
at com.zoho.livechat.android.utils.LiveChatUtil$4.run(LiveChatUtil.java:2631)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by java.lang.UnsupportedOperationException: Failed to resolve attribute at index 7: TypedValue{t=0x2/d=0x7f04038f a=3}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:484)
at android.widget.TextView.<init>(TextView.java:1352)
at android.widget.EditText.<init>(EditText.java:91)
at android.widget.EditText.<init>(EditText.java:87)
at android.widget.EditText.<init>(EditText.java:83)
at java.lang.reflect.Constructor.newInstance(Constructor.java)
at android.view.LayoutInflater.createView(LayoutInflater.java:631)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479)
at android.app.Dialog.setContentView(Dialog.java:851)
at com.zoho.livechat.android.utils.LiveChatUtil.showFeedbackDialog(LiveChatUtil.java:2567)
at com.zoho.livechat.android.utils.LiveChatUtil$4.run(LiveChatUtil.java:2631)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
After Zoho SalesIq update to v2.2, we started to get below error with some users. Do you have any guess about the reason?
Thanks!
Caused by java.lang.NullPointerException
Attempt to invoke virtual method 'boolean java.util.ArrayList.contains(java.lang.Object)' on a null object reference
com.zoho.salesiqembed.android.tracking.UTSUtil.isTrackingEnabled (UTSUtil.java:576)
com.zoho.salesiqembed.ZohoSalesIQ$1.onActivityResumed (ZohoSalesIQ.java:240)
android.app.Application.dispatchActivityResumed (Application.java:455)
androidx.fragment.app.FragmentActivity.onResume (FragmentActivity.java:455)
com.xxx.BaseActivity.onResume (BaseActivity.java:95)
I migrated my android application to androidX and after that I am experiencing the following error..
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.zoho.livechat.android.ui.activities.SalesIQActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setColorFilter(int, android.graphics.PorterDuff$Mode)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2572)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setColorFilter(int, android.graphics.PorterDuff$Mode)' on a null object reference
at com.zoho.livechat.android.ui.activities.SalesIQActivity.onCreate(SalesIQActivity.java:131)
at android.app.Activity.performCreate(Activity.java:6368)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5728)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
it is working properly in support version
Can't start the chat conversation with an image, the file attachment button seems to be non-functioning on tap if no message has been sent yet on the conversation. It works after the first text is sent and the dialog comes up to take action. Is this an intended behaviour or a bug in the SDK? Is there anything we need to pass to SDK to enable this, didn't find anything in documentation related to this. Thanks.
SDK version - 2.3.1
I am using the sdk v2.3.2 in a Flutter application, I was calling ZohoSalesIQ.Visitor.startChat()
in Android to start a chat. I disabled the launcher icon and added my own button to initiate chat.
But when I call the method again (if the user dismisses the previous chat and wants to reopen it), it starts a new chat session.
Here is my code whenever I start/resume chat
ZohoSalesIQ.Visitor.setName(name)
ZohoSalesIQ.Visitor.setEmail(email)
ZohoSalesIQ.Visitor.setContactNumber(contactNumber)
ZohoSalesIQ.Visitor.startChat(message)
Is there a way to restore the previous chat session manually?
Getting below error in Zoho Mobilisten SDK. SDK version used in 2.3.1.
Fatal Exception: android.database.CursorWindowAllocationException: Could not allocate CursorWindow '/data/user/0/com.noonEdu.k12App/databases/siq_mobilisten.db' of size 4194304 due to error -12.
at android.database.CursorWindow.nativeCreate(CursorWindow.java)
at android.database.CursorWindow.<init>(CursorWindow.java:145)
at android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:319)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:159)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:152)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:232)
at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:271)
at com.zoho.livechat.android.ui.fragments.ChatFragment.shouldHideInput(ChatFragment.java:2633)
at com.zoho.livechat.android.ui.fragments.ChatFragment.canEnableSendButton(ChatFragment.java:3466)
at com.zoho.livechat.android.ui.fragments.ChatFragment.setSendInputButtonState(ChatFragment.java:3410)
at com.zoho.livechat.android.ui.fragments.ChatFragment.afterTextChanged(ChatFragment.java:3368)
at android.widget.TextView.sendAfterTextChanged(TextView.java:11664)
at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:14910)
at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1277)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:577)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:507)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:37)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:849)
at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:618)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:393)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:89)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7948)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)
I would like to open the recent chats if any on custom button click. However if there aren't any recent chats I would like to open a new chat window.
Getting crash logged related to ActivityNotFoundException in Crashlytics for SalesIQ Mobilisten SDK. Please check and fix this
Fatal Exception: android.content.ActivityNotFoundException
No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://www.google.com/... }
com.zoho.livechat.android.ui.adapters.viewholder.MessagesTextViewHolder$2.onClick
Stack Trace:
Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://www.google.com/... } at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1854) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1544) at android.app.Activity.startActivityForResult(Activity.java:4391) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675) at android.app.Activity.startActivityForResult(Activity.java:4335) at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:662) at android.app.Activity.startActivity(Activity.java:4702) at android.app.Activity.startActivity(Activity.java:4670) at com.zoho.livechat.android.ui.adapters.viewholder.MessagesTextViewHolder$2.onClick(MessagesTextViewHolder.java:124) at android.text.method.LinkMovementMethod.onTouchEvent(LinkMovementMethod.java:217) at android.widget.TextView.onTouchEvent(TextView.java:8827) at android.view.View.dispatchTouchEvent(View.java:10012) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2671) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2358) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:447) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1871) at android.app.Activity.dispatchTouchEvent(Activity.java:3213) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:409) at android.view.View.dispatchPointerEvent(View.java:10232) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4862) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4723) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4255) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4308) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4274) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4401) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4282) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4458) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4255) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4308) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4274) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4282) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4255) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6682) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6656) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6617) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6809) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192) at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:356) at android.os.Looper.loop(Looper.java:138) at android.app.ActivityThread.main(ActivityThread.java:6517) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
geting this error in log while onClick StartChat option
java.lang.NoSuchFieldError: No static field bottom_layout of type I in class Lcom/zoho/livechat/android/R$id; or its superclasses (declaration of 'com.zoho.livechat.android.R$id' appears in /data/app/com.dwamtrading-2/split_lib_slice_4_apk.apk)
Hi Team,
Following error appear in log on first install of app.
E/System: java.util.zip.ZipException: File too short to be a zip file: 0
at java.util.zip.ZipFile.<init>(ZipFile.java:214)
at java.util.zip.ZipFile.<init>(ZipFile.java:148)
at java.util.jar.JarFile.<init>(JarFile.java:161)
at java.util.jar.JarFile.<init>(JarFile.java:98)
at libcore.io.ClassPathURLStreamHandler.<init>(ClassPathURLStreamHandler.java:47)
at dalvik.system.DexPathList$Element.maybeInit(DexPathList.java:532)
at dalvik.system.DexPathList$Element.findNativeLibrary(DexPathList.java:546)
at dalvik.system.DexPathList.findLibrary(DexPathList.java:480)
at dalvik.system.BaseDexClassLoader.findLibrary(BaseDexClassLoader.java:84)
at xtr.a(:com.google.android.gms@[email protected] (040306-414534850):6)
at xtr.g(:com.google.android.gms@[email protected] (040306-414534850):4)
at xtr.f(:com.google.android.gms@[email protected] (040306-414534850):2)
at com.google.android.gms.providerinstaller.ProviderInstallerImpl.b(:com.google.android.gms@[email protected] (040306-414534850):6)
at com.google.android.gms.providerinstaller.ProviderInstallerImpl.insertProvider(:com.google.android.gms@[email protected] (040306-414534850):5)
at java.lang.reflect.Method.invoke(Native Method)
at com.google.android.gms.common.security.ProviderInstallerImpl.insertProvider(:com.google.android.gms@[email protected] (040306-414534850):2)
at java.lang.reflect.Method.invoke(Native Method)
at com.google.android.gms.security.ProviderInstaller.zzc(com.google.android.gms:play-services-basement@@18.0.0:2)
at com.google.android.gms.security.ProviderInstaller.installIfNeeded(com.google.android.gms:play-services-basement@@18.0.0:12)
at com.zoho.livechat.android.ZohoLiveChat.init(ZohoLiveChat.java:119)
at com.zoho.salesiqembed.ZohoSalesIQ.init(ZohoSalesIQ.java:62)
at ----------------------------------------------------
at -------------------------------------------------------Application.java:144)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1046)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5475)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1563)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6196)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
Then when doing ZohoSalesIQ.Chat.show();
FAB button will appear for some reason but then nothing .
Call ZohoSalesIQ.Chat.show();
a second time will show the conversation, however to remove the FAB button, I need to close the app.
Our project have everything up to date including Android Studio, gradle, androidx etc. Not the case with your sample so it's little hard to do the diff.
I do use ProviderInstaller with method "ProviderInstaller.installIfNeededAsync" and I try to do ZohoSalesIQ.init
in onProviderInstalled
but same error showing.
The weird thing is that default value for ZohoSalesIQ.showLauncher(...);
is false
so shouldn't show anyway.
And finally I try to call ZohoSalesIQ.showLauncher(...);
in both case after ZohoSalesIQ.init
and in onInitComplete
.
I think the best way to reproduce the issue would be by faking an exception here:
try {
// You got the idea here what will happen to your library if I got an exception the first time?
ProviderInstaller.installIfNeeded(context);
} catch (GooglePlayServicesRepairableException var11) {
Log.e("Mobilisten", var11.getMessage(), var11);
} catch (GooglePlayServicesNotAvailableException var12) {
Log.e("Mobilisten", var12.getMessage(), var12);
}catch (Exception e) {
// not sure but could that be an hotFix?
}
Tested on a Pixel 3, old phone with android 7.1.1 and emulator.
I just don't want to see the FAB button appearing.
Edit: Tested with version zoho 4.2.3 and 4.2.2
Getting below while initializing Zoho MobiListen SDK. Library version used is 2.3.1
I/Mobilisten: Android Channel {"error":{"message":"Operation Failed","code":1000}}
Please help in identifying what is the cause of this error.
Zoho Android library is currently depending on com.android.support:appcompat-v7:26.1.0
which requires running Jetifier at each build.
Moreover, Google introduced a new Build Analyzer tool in Android Studio, that is flagging your library as AndroidX unsupported.
Please update com.android.support:appcompat-v7:26.1.0
to AndoirdX to improve build time.
Despite we have configured business hours in the company, the Android widget is always active. Is there any way to configure this?
It is having duplicate class error for INotificationChannel because my app is in androidx but the library doesn't support it.
Please help
There is no documentation: https://www.zoho.com/salesiq/help/developer-section/android-mobile-sdk-theme-customization-forms.html
What is the string name to translate that text Button?
Getting below error in Zoho Mobilisten SDK. SDK version used in 2.3.1.
Fatal Exception: java.lang.IllegalStateException: Timer already cancelled.
at java.util.Timer.sched(Timer.java:397)
at java.util.Timer.schedule(Timer.java:193)
at com.zoho.livechat.android.comm.LiveChatAdapter$WMSPEXConnectionHandler.schedule(LiveChatAdapter.java:307)
at com.zoho.livechat.android.comm.LiveChatAdapter$WMSPEXConnectionHandler.access$800(LiveChatAdapter.java:254)
at com.zoho.livechat.android.comm.LiveChatAdapter$WMSPEXConnectionHandler$1.run(LiveChatAdapter.java:319)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
We would want to make the phone input in the prechat screen mandatory. Is there a way to do this?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.