Giter VIP home page Giter VIP logo

salesiq-mobilisten-android-sample's Introduction

Installing Mobilisten (ZohoSalesIQ Android SDK)

Requirements

The SDK supports Android 5.0 (API level 21) and above.

Step 1:

Add the following maven repository in the settings.gradle file or root build.gradle file (/build.gradle).

 allprojects {
    repositories {
       maven { url 'https://maven.zohodl.com' }
    }
 }

enter image description here

Step 2:

Add the following dependency in the app's build.gradle file (app/build.gradle).

dependencies {
   implementation 'com.zoho.salesiq:mobilisten:7.1.1'
}

enter image description here

Step 3:

Then, press Sync Now in the bar that appears in the IDE.

enter image description here

Step 4:

Now, initialize the SDK by adding the following line in the onCreate() method of your Application class. You will have to insert the app key and access key as mentioned below:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        
        InitConfig initConfig = new InitConfig();
        initConfig.setFont(Fonts.REGULAR, <fontpath>);
        
        ZohoSalesIQ.init(this, "your app key", "your access key", initConfig, new InitListener() {
            @Override
            public void onInitSuccess() {
                 ZohoSalesIQ.Launcher.show(ZohoSalesIQ.Launcher.VisibilityMode.ALWAYS); //by default launcher will be hidden and it can be enabled with this line.
            }

            @Override
            public void onInitError(int errorCode, String errorMessage) {
                //your code
            }
        });
    }
}
Step 5:

Also, in the AndroidManifest.xml file, add the application class name in the application tag.

<application  android:name=".MyApplication">
  ...
</application>​

Help Doc - Mobilisten (ZohoSalesIQ Android SDK)

Demo Application:

Download our demo app from the Play Store today!

salesiq-mobilisten-android-sample's People

Contributors

angu-g avatar bhahirathan-mb-11956 avatar rakesh-mohan-3121 avatar yeskay-zohocorp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

salesiq-mobilisten-android-sample's Issues

IllegalStateException in LiveChatAdapter.java line 307

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)

Screenshot 2021-02-09 at 3 49 34 PM

Security issues

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.

Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

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.

Affected files

com\zoho\livechat\android\provider\CursorUtility.java

  • CursorUtility.java: 114
  • CursorUtility.java: 119
  • CursorUtility.java: 125
  • CursorUtility.java: 128
  • CursorUtility.java: 405
  • CursorUtility.java: 409
  • CursorUtility.java: 498
  • CursorUtility.java: 499

com\zoho\livechat\android\ui\fragments\ChatFragment.java

  • ChatFragment.java:4044

com\zoho\livechat\android\api\JoinProActiveChat.java

  • JoinProActiveChat.java:133

com\zoho\livechat\android\utils\LDPEXUtil.java

  • LDPEXUtil.java:601

com\zoho\livechat\android\utils\LiveChatUtil.java

  • LiveChatUtil.java:2089

com\zoho\livechat\android\api\ReOpen.java

  • 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

Improper Output Neutralization for Logs

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.

Affected files

com/zoho/livechat/android/utils/LiveChatUtil.java

LiveChatUtil.java: 2486

Insertion of Sensitive Information Into Sent Data

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.

Affected files

com/zoho/livechat/android/ui/fragments/ChatFragment.java

  • ChatFragment.java:2318
  • ChatFragment.java:2654
  • ChatFragment.java:2733
  • ChatFragment.java:2764

com\zoho\livechat\android\api\ChatTranscriptEmailExport.java

  • ChatTranscriptEmailExport.java:49

com\zoho\livechat\android\api\ChatTransfer.java

  • ChatTransfer.java:50
  • ChatTransfer.java:67

com\zoho\livechat\android\api\CloseChat.java

  • CloseChat.java:34

com\zoho\livechat\android\utils\FileDownload.java

  • FileDownload.java:54

com/zoho/livechat/android/utils/FileUpload.java

  • FileUpload.java:117
  • FileUpload.java:126
  • FileUpload.java:128
  • FileUpload.java:144
  • FileUpload.java:193
  • FileUpload.java:196

com\zoho\livechat\android\api\GDPRTranslationConsent.java

  • GDPRTranslationConsent.java:40

com\zoho\livechat\android\utils\GetArticles.java

  • GetArticles.java:71

com\zoho\livechat\android\utils\GetVisitorTranscriptUtil.java

  • GetVisitorTranscriptUtil.java:65

com/zoho/livechat/android/utils/LiveChatUtil.java

  • LiveChatUtil.java:2347
  • LiveChatUtil.java:2375
  • LiveChatUtil.java:2397
  • LiveChatUtil.java:3805

com\zoho\livechat\android\ui\adapters\viewholder\MessagesLocationViewHolder.java

  • MessagesLocationViewHolder.java:83

com\zoho\livechat\android\api\MissedVisitor.java

  • MissedVisitor.java:50

com\zoho\livechat\android\image\MobilistenImageUtil.kt

  • MobilistenImageUtil.kt:345

com\zoho\livechat\android\api\PredictMessageStatus.java

  • PredictMessageStatus.java:68

com\zoho\livechat\android\api\ReOpen.java

  • ReOpen.java:59

com\zoho\livechat\android\operation\SalesIQApplicationManager.java

  • SalesIQApplicationManager.java:520

com\zoho\livechat\android\api\SendMessage.java

  • SendMessage.java:52

com\zoho\livechat\android\api\SendVisitorFeedBack.java

  • SendVisitorFeedBack.java:48

com\zoho\livechat\android\utils\VoteApiUtil.java

  • VoteApiUtil.java:59

com/zoho/livechat/android/utils/VoteApiUtil.java

  • WebSocketQueryV13.java:595

com\zoho\livechat\android\messaging\wms\common\websocket\WebSocketV13.java

  • WebSocketV13.java:844

com\zoho\livechat\android\ZohoLiveChat.java

  • ZohoLiveChat.java:912

Cleartext Storage of Sensitive Information

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.

Affected files

com/zoho/livechat/android/utils/LiveChatUtil.java

  • LiveChatUtil.java:1545
  • LiveChatUtil.java:2964
  • LiveChatUtil.java:3294

Insufficient Entropy

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.

Affected files

com\zoho\livechat\android\utils\LiveChatUtil.java

  • LiveChatUtil.java:899

com/zoho/livechat/android/NotificationService.java

  • NotificationService.java:254
  • NotificationService.java:256
  • NotificationService.java:260
  • NotificationService.java:330
  • NotificationService.java:332
  • NotificationService.java:400
  • NotificationService.java:402
  • NotificationService.java:509
  • NotificationService.java:511
  • NotificationService.java:559
  • NotificationService.java:561
  • NotificationService.java:606
  • NotificationService.java:608

com\zoho\livechat\android\messaging\wms\common\websocket\WebSocketQueryV13.java

  • WebSocketQueryV13.java:716

com\zoho\livechat\android\messaging\wms\common\websocket\WebSocketV13.java

  • WebSocketV13.java:1026

Improper Resource Shutdown or Release

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.

Affected files

com\zoho\livechat\android\api\AutoCompleteZohoMaps.java

  • AutoCompleteZohoMaps.java: 49
  • AutoCompleteZohoMaps.java: 92

com\zoho\livechat\android\api\ChatTranscriptEmailExport.java

  • ChatTranscriptEmailExport.java: 62
  • ChatTranscriptEmailExport.java: 71
  • ChatTranscriptEmailExport.java: 86

com\zoho\livechat\android\api\ChatTransfer.java

  • ChatTransfer.java: 65
  • ChatTransfer.java: 76
  • ChatTransfer.java: 97

com\zoho\livechat\android\utils\ClearNotification.java

  • ClearNotification.java: 75

com\zoho\livechat\android\api\CloseChat.java

  • CloseChat.java: 46
  • CloseChat.java: 80

com\zoho\livechat\android\utils\FileDownload.java

  • FileDownload.java: 87

com\zoho\livechat\android\utils\FileUpload.java

  • FileUpload.java: 224
  • FileUpload.java: 245

com\zoho\livechat\android\api\GDPRTranslationConsent.java

  • GDPRTranslationConsent.java: 50
  • GDPRTranslationConsent.java: 67

com\zoho\livechat\android\api\GetAndroidChannel.java

  • GetAndroidChannel.java: 212
  • GetAndroidChannel.java: 59

com\zoho\livechat\android\api\GetAppStatus.java

  • GetAppStatus.java: 72

com\zoho\livechat\android\utils\GetArticleCategories.java

  • GetArticleCategories.java: 104
  • GetArticleCategories.java: 69

com\zoho\livechat\android\utils\GetArticleCSSUtil.java

  • GetArticleCSSUtil.java: 41

com\zoho\livechat\android\utils\GetArticleInfoUtil.java

  • GetArticleInfoUtil.java: 64

com\zoho\livechat\android\utils\GetArticles.java

  • GetArticles.java: 130
  • GetArticles.java: 84

com\zoho\livechat\android\utils\GetConversationsUtil.java

  • GetConversationsUtil.java: 309
  • GetConversationsUtil.java: 77

com\zoho\livechat\android\api\GetFormConfiguration.java

  • GetFormConfiguration.java: 73

com\zoho\livechat\android\comm\GetLocationSuggestions.java

  • GetLocationSuggestions.java: 57

com\zoho\livechat\android\utils\GetVisitorTranscriptUtil.java

  • GetVisitorTranscriptUtil.java: 104
  • GetVisitorTranscriptUtil.java: 82

com\zoho\livechat\android\api\GetWmsIdDetails.java

  • GetWmsIdDetails.java: 171
  • GetWmsIdDetails.java: 62

com\zoho\livechat\android\comm\JoinChat.java

  • JoinChat.java: 54

com\zoho\livechat\android\api\JoinProActiveChat.java

  • JoinProActiveChat.java: 102
  • JoinProActiveChat.java: 172
  • JoinProActiveChat.java: 92

com\zoho\livechat\android\api\LeaveMessage.java

  • LeaveMessage.java: 107
  • LeaveMessage.java: 118
  • LeaveMessage.java: 153
  • LeaveMessage.java: 99

com\zoho\livechat\android\api\MissedVisitor.java

  • MissedVisitor.java: 103
  • MissedVisitor.java: 61

com\zoho\livechat\android\api\PredictMessageStatus.java

  • PredictMessageStatus.java: 109
  • PredictMessageStatus.java: 75
  • PredictMessageStatus.java: 85

com\zoho\livechat\android\api\QueuePosition.java

  • QueuePosition.java: 55
  • QueuePosition.java: 65
  • QueuePosition.java: 85

com\zoho\livechat\android\utils\RegisterUtil.java

  • RegisterUtil.java: 63
  • RegisterUtil.java: 88

com\zoho\livechat\android\api\ReOpen.java

  • ReOpen.java: 109
  • ReOpen.java: 283
  • ReOpen.java: 99

com\zoho\livechat\android\utils\RequestLogUtil.java

  • RequestLogUtil.java: 123
  • RequestLogUtil.java: 51

com\zoho\livechat\android\utils\SearchArticlesUtil.java

  • SearchArticlesUtil.java: 61

com\zoho\livechat\android\comm\SendFormMessageAPI.java

  • SendFormMessageAPI.java: 93

com\zoho\livechat\android\api\SendMessage.java

  • SendMessage.java: 73
  • SendMessage.java: 86

com\zoho\livechat\android\api\SendVisitorFeedBack.java

  • SendVisitorFeedBack.java: 143
  • SendVisitorFeedBack.java: 66

com\zoho\livechat\android\api\UserTypingStatus.java

  • UserTypingStatus.java: 65
  • UserTypingStatus.java: 75
  • UserTypingStatus.java: 84

com\zoho\livechat\android\utils\WavAudioRecorder.java

  • WavAudioRecorder.java: 435

Selection of Less-Secure Algorithm During Negotiation ('Algorithm Downgrade')

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.

Affected files

com\zoho\livechat\android\messaging\wms\common\websocket\WebSocketQueryV13.java

  • WebSocketQueryV13.java: 50

Zoho MobiListen not intializing. Error code 1000

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.

Initiate chat with Attachment icon

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

Screenshot_20201023-143402

Connect to maven.zohodl.com:443 [maven.zohodl.com/204.141.42.60] failed: connect timed out

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

Styles not changing

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>

ZohoSalesIQ.Chat.show() not working on the first click

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?

ResourcesNotFoundException in MessagesFeedbackViewHolder.java line 73

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)

UnsupportedOperationException in LiveChatUtil.java line 2567

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)

UTSUtil.isTrackingEnabled NullPointerException

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)

NullPointerException in ChatFragment.java line 1218

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)

android.database.CursorWindowAllocationException in LiveChatUtil.java line 444

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)

Screenshot 2021-02-09 at 4 00 57 PM

android.database.CursorWindowAllocationException in ChatFragment.java line 2633

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)

Screenshot 2021-02-09 at 3 52 33 PM

Application crash, while click on start chat in fragment

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)

Null pointer exception on opening SDK

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

Duplicate Class Found with GlideToVectorYou Library

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)

NullPointerException in ChatFragment.java line 612

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)

[Question] Is there a way to resume chat after closing chat window?

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?

NullPointerException in ChatFragment.java

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)

Android X support

It is having duplicate class error for INotificationChannel because my app is in androidx but the library doesn't support it.
Please help

Launcher icon (FAB button with a messaging icon) show the first time app is installed

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

OutOfMemoryError in TimeOutListener.java

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

Update to Android X

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.

Not able to send msg (send button greyed out)

The sending button is always disabled and the first msg is stuck on sending.
Also, the conversations page always shows "awaiting your details" and it keeps loading.
Please see the below Attached screenshots for details.

Screenshot_1606997364
Screenshot_1606997369
Screenshot_1606997397

Adjust `salesiq:mobilisten` library to Android 12 requirements

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.

Issue while sending or selecting Bot suggestions

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

Screenshot
Video link

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)

NullPointerException in ChatFragment.java line 3394

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)

ActivityNotFoundException

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.