| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package com.datarecovery.master.sdk.qiyu;
- import android.app.Application;
- import android.content.Context;
- import android.text.TextUtils;
- import com.atmob.common.data.KVUtils;
- import com.atmob.common.logging.AtmobLog;
- import com.atmob.common.runtime.ContextUtil;
- import com.datarecovery.master.BuildConfig;
- import com.datarecovery.master.R;
- import com.datarecovery.master.data.repositories.AccountRepository;
- import com.datarecovery.master.module.browser.BrowserActivity;
- import com.datarecovery.master.utils.SystemUtil;
- import com.qiyukf.nimlib.sdk.RequestCallback;
- import com.qiyukf.nimlib.sdk.StatusBarNotificationConfig;
- import com.qiyukf.unicorn.api.OnMessageItemClickListener;
- import com.qiyukf.unicorn.api.UICustomization;
- import com.qiyukf.unicorn.api.Unicorn;
- import com.qiyukf.unicorn.api.YSFOptions;
- import com.qiyukf.unicorn.api.YSFUserInfo;
- import java.util.UUID;
- public class QiYuHelper {
- private static final String TAG = "QiYuHelper";
- private static final String ysfAppId = BuildConfig.QIYU_APP_KEY;
- private static final String VISITOR_KEY = "visitor_key";
- public static void init(Application application) {
- Unicorn.config(application, ysfAppId, options(), new GlideImageLoader(application));
- }
- public static void initSdk() {
- Unicorn.initSdk();
- if (TextUtils.isEmpty(AccountRepository.token)) {
- setVisitorInfo();
- }
- }
- private static void setVisitorInfo() {
- YSFUserInfo userInfo = new YSFUserInfo();
- userInfo.userId = getUserId();
- String appName = ContextUtil.getContext().getString(R.string.app_name) + "-访客";
- // CRM 扩展字段
- userInfo.data = "[\n" +
- " {\"key\":\"real_name\", \"value\":\"" + appName + "\"},\n" +
- getAppCommonInfo() +
- "]";
- Unicorn.setUserInfo(userInfo, new RequestCallback<Void>() {
- @Override
- public void onSuccess(Void aVoid) {
- AtmobLog.d(TAG, "set visitor info success");
- }
- @Override
- public void onFailed(int errorCode) {
- AtmobLog.d(TAG, "set visitor info failed, errorCode: " + errorCode);
- }
- @Override
- public void onException(Throwable throwable) {
- AtmobLog.d(TAG, "set visitor info exception: " + throwable.getMessage());
- }
- });
- }
- private static YSFOptions options() {
- YSFOptions options = new YSFOptions();
- options.statusBarNotificationConfig = new StatusBarNotificationConfig();
- options.onMessageItemClickListener = BrowserActivity::start;
- return options;
- }
- public static void logout() {
- Unicorn.logout();
- KVUtils.getDefault().putString(VISITOR_KEY, null);
- }
- public static void openServiceActivity(Context context) {
- Unicorn.openServiceActivity(context, "客服", null);
- }
- private static String getUserId() {
- String userId;
- if (TextUtils.isEmpty(userId = KVUtils.getDefault().getString(VISITOR_KEY, null))) {
- userId = UUID.randomUUID().toString();
- KVUtils.getDefault().putString(VISITOR_KEY, userId);
- }
- return userId;
- }
- public static void setUserInfo(String phone, String serverUserId, String token) {
- YSFUserInfo userInfo = new YSFUserInfo();
- // App 的用户 ID
- userInfo.userId = getUserId();
- // 当且仅当开发者在管理后台开启了 authToken 校验功能时,该字段才有效
- // userInfo.authToken = token;
- String appName = ContextUtil.getContext().getString(R.string.app_name) + "-" + phone;
- // CRM 扩展字段
- userInfo.data = "[\n" +
- " {\"key\":\"real_name\", \"value\":\"" + appName + "\"},\n" +
- " {\"key\":\"mobile_phone\", \"hidden\":false, \"value\":\"" + phone + "\"},\n" +
- " {\"index\":0, \"key\":\"version\", \"label\":\"用户Id\", \"value\":\"" + serverUserId + "\" },\n" +
- getAppCommonInfo() +
- "]";
- Unicorn.setUserInfo(userInfo, new RequestCallback<Void>() {
- @Override
- public void onSuccess(Void aVoid) {
- AtmobLog.d(TAG, "set visitor info success");
- }
- @Override
- public void onFailed(int errorCode) {
- AtmobLog.d(TAG, "set visitor info failed, errorCode: " + errorCode);
- }
- @Override
- public void onException(Throwable throwable) {
- AtmobLog.d(TAG, "set visitor info exception: " + throwable.getMessage());
- }
- });
- }
- private static String getAppCommonInfo() {
- String info = " {\"index\":1, \"key\":\"version\", \"label\":\"应用版本\", \"value\":\"v" + SystemUtil.getVersionName(ContextUtil.getContext()) + "\" },\n" +
- " {\"index\":2, \"key\":\"appName\", \"label\":\"应用名称\", \"value\":\"" + ContextUtil.getContext().getString(R.string.app_name) + "\" },\n" +
- " {\"index\":3, \"key\":\"packageName\", \"label\":\"包名\", \"value\":\"" + ContextUtil.getApplication().getPackageName() + "\" },\n";
- return info;
- }
- }
|