All Projects → Teknasyon-Teknoloji → desk360-android-sdk

Teknasyon-Teknoloji / desk360-android-sdk

Licence: MIT license
Desk360 Android SDK

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to desk360-android-sdk

Zammad
Zammad is a web based open source helpdesk/customer support system
Stars: ✭ 2,814 (+20000%)
Mutual labels:  support, customer-support
booster
booster.c3bi.pasteur.fr
Stars: ✭ 22 (+57.14%)
Mutual labels:  support
data.gouv.fr
Ce dépôt rassemble les tickets techniques qui portent sur data.gouv.fr.
Stars: ✭ 50 (+257.14%)
Mutual labels:  support
Kommunicate-Web-SDK
Kommunicate Web AI Chatbot and Live Chat Plugin
Stars: ✭ 21 (+50%)
Mutual labels:  support
idfx
Tool for flash/monitor ESP-IDF and ESP8266_SDK apps on the WSL2 ⚡
Stars: ✭ 71 (+407.14%)
Mutual labels:  support
WaiterBell
WaiterBell - The ticketing system in real world!
Stars: ✭ 16 (+14.29%)
Mutual labels:  customer-support
itflow
Free and open-source web application for MSPs that streamlines IT documentation, ticketing, invoicing, and accounting, an alternative to ITGlue. It helps in managing and organizing client's IT information, increasing efficiency and profitability.
Stars: ✭ 282 (+1914.29%)
Mutual labels:  ticket-management
cerb-release
For over 20 years, teams of all sizes have used Cerb to manage their email workloads. Whether you're a solo founder replying to a few support messages per day, or a team with hundreds of members replying to thousands of messages per hour, you can serve your audience faster with Cerb's time-tested tools. Development at: https://github.com/jstande…
Stars: ✭ 37 (+164.29%)
Mutual labels:  customer-support
GoldenTicket
A light-weight ticketing system written in C#
Stars: ✭ 29 (+107.14%)
Mutual labels:  ticket-management
RemoteSupportTool
an easy single click solution for remote maintenance
Stars: ✭ 74 (+428.57%)
Mutual labels:  support
RDMSamples-ps
Remote Desktop Manager (RDM) samples of powershell code
Stars: ✭ 20 (+42.86%)
Mutual labels:  support
ModMail
A Discord ModMail Bot.
Stars: ✭ 54 (+285.71%)
Mutual labels:  support
support
Your go-to guides for understanding Hashnode a little better.
Stars: ✭ 36 (+157.14%)
Mutual labels:  support
SupportDocs
Generate help centers for your iOS apps. Hosted by GitHub and always up-to-date.
Stars: ✭ 135 (+864.29%)
Mutual labels:  support
salesiq-mobilisten-android-sample
Sample App to integrate SalesIQ Android SDK (Mobilisten)
Stars: ✭ 13 (-7.14%)
Mutual labels:  customer-support
laravel-support-bubble
A non-intrusive support form that can be displayed on any page
Stars: ✭ 289 (+1964.29%)
Mutual labels:  support
is-style-supported
Feature test support for CSS properties and their assignable values
Stars: ✭ 17 (+21.43%)
Mutual labels:  support
browserslist-generator
A library that makes generating and validating Browserslists a breeze!
Stars: ✭ 77 (+450%)
Mutual labels:  support
Tickety
a simple discord.js ticket system bot
Stars: ✭ 61 (+335.71%)
Mutual labels:  ticket-management
amp-05-windows-tune
No description or website provided.
Stars: ✭ 24 (+71.43%)
Mutual labels:  support

Desk360 Android SDK

img img

Table Of Content

Summary

Desk360 is an Android SDK to help your embedding customer support in your mobile Android apps with ease.

Features

The Desk360 SDK lets users do any of the following:

Create new support tickets View and comment on existing tickets Interactively communicate with related support teams

Installation

Setup

To integrate Desk360 into your Android project , add below parts to your build.gradlle

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

Add the dependency

dependencies {
    implementation 'com.github.Teknasyon-Teknoloji:desk360-android-sdk:latest_release'
}

Add Data and View Binding enable script

apply plugin: 'kotlin-kapt'

android {
    
    buildFeatures {
        dataBinding true
    }
}

(Please change latest_release with : https://img.shields.io/jitpack/v/github/Teknasyon-Teknoloji/desk360-android-sdk)

Usage

Start Desk360
import com.teknasyon.desk360.helper.Desk360Config
import com.teknasyon.desk360.helper.Desk360SDKManager
import com.teknasyon.desk360.helper.Platform
import com.teknasyon.desk360.helper.Desk360SDK
        val desk360SDKManager = Desk360SDKManager.Builder(context:Context)
            .setAppKey(key:String)
            .setAppVersion(version:String)
            .setLanguageCode(languageCode:String)
            .setPlatform(platform:Platform)
            .setCountryCode(countryCode:String)
            .setCustomJsonObject(
                JSONObject(
                    "{\n" +
                            "  \"name\":\"Desk360\",\n" +
                            "  \"age\":3,\n" +
                            "  \"cars\": {\n" +
                            "    \"car1\":\"MERCEDES\",\n" +
                            "    \"car2\":\"BMW\",\n" +
                            "    \"car3\":\"AUDI\"\n" +
                            "  }\n" +
                            " }"
                )
            )
            .build()

        desk360SDKManager.initialize("firebase notification token", "device id")

        Desk360SDK.start()
Parameters Description
token your notification token
deviceId your Android device id
appKey desk360 Api Key will provided when you get the license
appVersion your application's version number
languageCode ISO 639-1 Code for sdk language: "en","fr,"tr
platform mobile platform: Platform.GOOGLE or Platform.HUAWEI
countryCode country code: "tr", "us", "de"
jsonObject for custom datas

Get Notification Token

If FCM is used as notification service;

FirebaseInstanceId.getInstance().instanceId

                .addOnCompleteListener { task ->
		
                    if (task.isSuccessful && task.result != null) {
                       val token = task.result!!.token
                    }
                }	

If Huawei Push Kit is used as notification service;

private fun getToken() {   
    // Create a thread.
    object : Thread() {
        override fun run() {
            try {
                // Obtain the app ID from the agconnect-services.json file.
                val appId = "your APP_ID"    
            
                // Set tokenScope to HCM.
                val tokenScope = "HCM"
                val token = HmsInstanceId.getInstance(this@MainActivity).getToken(appId, tokenScope)                
                              
           } catch (e: ApiException) {        
               Log.e(TAG, "get token failed, $e")               
           }     
        }  
    }.start()
}

Parse "targetId" from Firebase Notification Body (Starting Activity)

When your application is killed the notification body will be in your starting activity's extra.

val bundle = intent.extras
        bundle?.let {
	
	val hermes = bundle?.getString("hermes")
            hermes?.let {
		val targetId = Desk360SDK.getTicketId(hermes)
    	}	
  }

Parse "targetId" from Firebase Notification Body (Firebase Notification Service)

When your application is on foreground onMessageReceived will handle notification body.

override fun onMessageReceived(remoteMessage: RemoteMessage) {
        super.onMessageReceived(remoteMessage)

        val hermes = remoteMessage.data["hermes"]

        hermes?.let {
	val targetId = Desk360SDK.getTicketId(hermes)
    }
    

Handling "targetId"

If target_id is not null you must open Desk360SplasActivity if not you must open your starting activity.

Example (In your firebaseMessagingService class) :

 val pendingIntent: PendingIntent?

        pendingIntent = targetId?.let { targetId ->

        val desk360SDKManager = Desk360SDKManager.Builder(context)
            .setAppKey("app key")
            .setAppVersion("app version")
            .setLanguageCode("your selected ISO 639-1 Code for language: tr, en")
            .setPlatform("mobile platform: Platform.GOOGLE or Platform.HUAWEI")
            .setCountryCode("country code: tr, de")
            .setCustomJsonObject("for custom data")
            .build()

             desk360SDKManager.initialize(
                      notificationToken = "your firebase token",
                      deviceId = "your Android device id"
             )

             val intent = Desk360SDK.getIntent(context:Context, ticketId:String?)
             PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT)
        } ?: run {
            PendingIntent.getActivity(this, 0, Intent(this, YourStartingActivity::class.java), PendingIntent.FLAG_ONE_SHOT)
        }

Use Desk 360

       val desk360SDKManager = Desk360SDKManager.Builder(context)
            .setAppKey("app key")
            .setAppVersion("app version")
            .setLanguageCode("your selected ISO 639-1 Code for language: tr, en")
            .setPlatform("mobile platform: Platform.GOOGLE or Platform.HUAWEI")
            .setCountryCode("country code: tr, de")
            .setCustomJsonObject("for custom data")
            .build()

       desk360SDKManager.initialize(
             notificationToken = "your firebase token",
             deviceId = "your Android device id"
       )

        Desk360SDK.start()
        finish()		

Open Desk360 without Notification Service

If your app will not use notification then you must set token "" and for targetId ""

       val desk360SDKManager = Desk360SDKManager.Builder(context)
            .setAppKey("app key")
            .setAppVersion("app version")
            .setLanguageCode("your selected ISO 639-1 Code for language: tr, en")
            .setPlatform("mobile platform: Platform.GOOGLE or Platform.HUAWEI")
            .setCountryCode("country code: tr, de")
            .setCustomJsonObject("for custom data")
            .build()

       desk360SDKManager.initialize(
             notificationToken = "your firebase token",
             deviceId = "your Android device id"
       )

        Desk360SDK.start()
        finish()

Language

If you don't want to use custom language then you must set to "" , desk360 sdk will use your Android device language

ProGuard

If you are using proguard you must add this rules to avoid further compile issues.


-keep class com.teknasyon.desk360.model.** { *; }
-keepnames class com.teknasyon.desk360.model.** { *; }
-keep class com.teknasyon.desk360.modelv2.** { *; }
-keepnames class com.teknasyon.desk360.modelv2.** { *; }

Versioning

We use SemVer for versioning.

Support

If you have any questions or feature requests, please create an issue.

Licence

Copyright Teknasyon 2022.

Desk360 is released under the MIT license. See LICENSE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].