Skip to content

LiveTex/sdk-ui-android

Repository files navigation

Android mobile SDK - UI library & demo app

LiveTex Mobile SDK предоставляет набор инструментов для организации консультирования пользователей мобильных приложений.

В данном репозитории находится готовая к внедрению UI реализация для SDK, а так же демо проект.

Сам SDK находится в репозитории sdk-android.

Демо

Пример использования библиотеки можно посмотреть вживую в полноценном демо приложении, поставив его на устройство через официальный Google Play.

Исходники этого демо приложения лежат в папке demo-app.

Подключение UI library

Release

Пример подключения (с пушами) есть демо приложении.

В build.gradle (который в корне проекта) добавить репозиторий jitpack

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

В build.gradle (который в модуле приложения) добавить зависимость SDK актуальной версии (см. Releases)

dependencies {
	implementation 'com.github.LiveTex:sdk-ui-android:x.y'
}

Настройка

В AndroidManifest.xml добавьте запись

<activity
	android:name="ru.livetex.sdkui.chat.ChatActivity"
	android:theme="@style/Theme.Chat"
	android:screenOrientation="portrait" />

В styles.xml добавьте запись вида

<style name="Theme.Chat" parent="Theme.YourAppTheme">
	<item name="windowActionBar">false</item>
	<item name="windowNoTitle">true</item>
</style>

где Theme.YourAppTheme это тема вашего приложения. Если она не Material, сделайте наследование от Theme.MaterialComponents.*.Bridge . В будущем планируем добавить возможности кастомизации.

Далее нужно инициализировать обьект LiveTex. Делается это обычно в Application классе (например App.java).

new LiveTex.Builder(Const.TOUCHPOINT).build();

Укажите Touchpoint (берется в личном кабинете). Если у вас свой эндпоинт авторизации, укажите его добавив в билдер вызов .setAuthEndpoint(endpoint).

В итоге для вызова экрана чата нужно запустить активити

startActivity(new Intent(this, ChatActivity.class));

Пуши

В демо приложении есть пример того, как подключить пуши и передать токен в LiveTex. Для подключения пушей нужно сначала подключить Firebase Messaging Service по их стандартной инструкции. С помощью функции FirebaseInstanceId.getInstance().getInstanceId() нужно зарегистрировать устройство в Firebase и получить в ответ device token, который в свою очередь нужно передать в билдер LiveTex. Это несинхронная операция которая требует какое-то время, поэтому функция реактивная.

Внимание - функция initLiveTex() должна быть вызвана до использования класса LiveTex. Поэтому инициализировать его в случае с Firebase стоит заранее (в SplashActivity например). Если не критично, можете инициализировать синглтон LiveTex с пустым пуш токеном, обычно к следующей инициализации токен уже лежит в FirebaseInstanceId.getInstance().getToken().

public Completable init() {
	return Completable.create(emitter -> {
		FirebaseMessaging.getInstance().getToken().addOnCompleteListener(task -> {
			if (!task.isSuccessful()) {
				Log.w(TAG, "Fetching FCM registration token failed", task.getException());
				initLiveTex(null);
				emitter.onComplete();
				return;
			}

			// Get new FCM registration token
			String token = task.getResult();
			Log.i(TAG, "firebase token = " + token);

			initLiveTex(token);
			emitter.onComplete();
		});
	});
}

private void initLiveTex(@Nullable String token) {
	new LiveTex.Builder(Const.TOUCHPOINT)
			.setDeviceToken(token)
			.build();
}

Отладка

Для отладки можно включить логи https и websocket общения, для этого при инициализации LiveTex вызвать 2 дополнительные функции

private void initLiveTex(@Nullable String token) {
	new LiveTex.Builder(Const.TOUCHPOINT)
			.setDeviceToken(token)
			.setWebsocketLoggingEnabled()
			.setNetworkLoggingEnabled()
			.build();
}