Android SDK

This document assumes that you understand the basic terms of Android app development in Kotlin language

Part 1: To Add Floating Chat Icon:

  • Step 1 : Add a WebView in your layout file where you want to add your floating chat button


Code Sample

<androidx.cardview.widget.CardView
        android:id="@+id/fab"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="bottom|end"
        android:layout_margin="16dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        app:elevation="6dp"
        app:cardCornerRadius="40dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent">


        <WebView
            android:id="@+id/floatingWebView"
            android:layout_width="80dp"
            android:layout_height="80dp" />


        <View
            android:id="@+id/touchView"
            android:layout_width="80dp"
            android:layout_height="80dp"/>


    </androidx.cardview.widget.CardView>

  • Step 2: Bind the webview to an activity in your code

floatingWebView = findViewById(R.id.floatingWebView)
// Configure WebView settings
val webSettingsFloating: WebSettings = floatingWebView.settings
webSettingsFloating.javaScriptEnabled = true // Enable JavaScript (optional)

// Load a URL in the WebView

floatingWebView.loadUrl("URL From Sales Assist Dashboard")
floatingWebView.webViewClient = object : WebViewClient() {
    override fun onPageFinished(view: WebView?, url: String?) {
        super.onPageFinished(view, url)

        val cssCode = "video::-webkit-media-controls-play-button, video::-webkit-media-controls-start-playback-button { display: none !important; }"
        floatingWebView.loadUrl("javascript:(function() { var style = document.createElement('style'); style.innerHTML = '$cssCode'; document.head.appendChild(style); })();")
    }
}

With This, you will see a floating chat icon in your app

Now we need to open the chat window with the click of the floating chat icon.

but before that, we need to create a web view for the opening window

  • Step 3: Create A new Activity and layout with webview

<WebView
        android:id="@+id/webViewNext"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebSettings
import android.webkit.WebView

class NextWebViewActivity : AppCompatActivity() {
    private lateinit var webViewNext: WebView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_next_web_view)

        // Find the WebView by its ID
        webViewNext = findViewById(R.id.webViewNext)

        // Configure WebView settings
        val webSettings: WebSettings = webViewNext.settings
        webSettings.javaScriptEnabled = true // Enable JavaScript (optional)

        // Load a URL in the WebView
        webViewNext.loadUrl("your URL from sale assist dashboard")

    }
}

  • Step4: Setup Touch Event with the floating chat icon

val touchView: View = findViewById(R.id.touchView)
        touchView.setOnClickListener {
            // Add your action here
            // For example, navigate to another activity
             val intent = Intent(this, NextWebViewActivity::class.java)
             startActivity(intent)
        }

Part 2: Adding Slider View

  • Step 1 : Add a Webview in your layout file

<WebView
        android:id="@+id/webView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="48dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="48dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/webView"
        app:layout_constraintEnd_toEndOf="@+id/webView"
        app:layout_constraintStart_toStartOf="@+id/webView"
        app:layout_constraintTop_toTopOf="@+id/webView" />

  • Step 2 : Connect webview to Activity and load the URL in it

webView = findViewById(R.id.webView)
progressBar = findViewById(R.id.progressBar)
val webSettings: WebSettings = webView.settings


webSettings.javaScriptEnabled = true // Enable JavaScript (optional)


webView.webViewClient = object : WebViewClient() {
            @SuppressLint("NewApi")
            override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
                super.onPageStarted(view, url, favicon)
                progressBar.visibility = View.VISIBLE
            }


            @SuppressLint("NewApi")
            override fun onPageFinished(view: WebView?, url: String?) {
                super.onPageFinished(view, url)
                progressBar.visibility = View.GONE
            }
        }
webView.loadUrl("URL From Sales Assist Dashboard")

Last updated

Was this helpful?