Commit a0f971c6 by sikang

添加埋点

parent 39abfc64
......@@ -131,5 +131,5 @@ dependencies {
//zendesk
api group: 'com.zendesk', name: 'support', version: '2.1.1'
compileOnly project(':cash_plugin_toolbox')
}
......@@ -23,10 +23,12 @@ import tech.starwin.constants.ActionEnum;
import tech.starwin.impl.OnEventClickListener;
import tech.starwin.network.Gateway;
import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.TrackEventHelper;
import tech.starwin.utils.context_utils.EasyActivityResult;
import tech.starwin.utils.ui_utils.DialogFactory;
import tech.starwin.utils.ui_utils.UIHelper;
import com.common.toolbox.tracker.TrackEvent;
import com.common.widget.TopBar;
import java.io.Serializable;
......@@ -87,6 +89,7 @@ public class AgreementPolicyActivity extends BaseActivity {
if (mCheckBox.isChecked()) {
if (agreementType == null) {
PreferencesManager.get().setPolicyStatus(true);
TrackEventHelper.logEvent(TrackEvent.Click.AGREE_PRIVACY);
setResult(RESULT_OK);
finish();
return;
......@@ -97,6 +100,7 @@ public class AgreementPolicyActivity extends BaseActivity {
AgreementPolicyActivity.startForResult(AgreementPolicyActivity.this, Type.AGREEMENT_KSP, 0, (requestCode, resultCode, data) -> {
if (resultCode == RESULT_OK) {
setResult(Activity.RESULT_OK);
TrackEventHelper.logEvent(TrackEvent.Click.AGREE_PRIVACY);
}
finish();
});
......
......@@ -10,6 +10,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import tech.starwin.impl.OnEventClickListener;
import tech.starwin.utils.TrackEventHelper;
/**
* Created by SiKang on 2018/9/16.
*/
......@@ -39,8 +42,12 @@ public abstract class BaseRecyclerAdapter<T> extends RecyclerView.Adapter<Recycl
final RecyclerViewHolder holder = new RecyclerViewHolder(view);
initViewHolder(holder);
if (mClickListener != null) {
holder.itemView.setOnClickListener(v ->
mClickListener.onItemClick(holder.itemView, holder.getLayoutPosition(), mData.get(holder.getLayoutPosition())));
holder.itemView.setOnClickListener(new OnEventClickListener() {
@Override
public void onEventClick(View v) {
mClickListener.onItemClick(holder.itemView, holder.getLayoutPosition(), mData.get(holder.getLayoutPosition()));
}
});
}
if (mLongClickListener != null) {
holder.itemView.setOnLongClickListener(v -> {
......@@ -58,7 +65,12 @@ public abstract class BaseRecyclerAdapter<T> extends RecyclerView.Adapter<Recycl
for (int id : childClickSet) {
View child = holder.getView(id);
if (child != null) {
child.setOnClickListener(v -> mClickListener.onItemClick(v, position, mData.get(position)));
child.setOnClickListener(new OnEventClickListener() {
@Override
public void onEventClick(View v) {
mClickListener.onItemClick(v, position, mData.get(position));
}
});
}
}
}
......@@ -100,8 +112,8 @@ public abstract class BaseRecyclerAdapter<T> extends RecyclerView.Adapter<Recycl
}
public interface OnItemClickListener<T> {
void onItemClick(View itemView, int pos, T t);
public interface OnItemClickListener<T> {
void onItemClick(View itemView, int pos, T t);
}
public interface OnItemLongClickListener<T> {
......
package tech.starwin.constants;
/**
* Created by SiKang on 2018/12/7.
*/
public class TrackEvent {
public static final String SMS_LOGIN_SUCCESS = "sms_login_success"; /*通过短信登录成功*/
public static final String FACEBOOK_LOGIN_SUCCESS = "facebook_login_success"; /*通过facebook account kit 登录成功*/
public static final String LOGOUT_SUCCESS = "logout_success"; /*用户退出了账号*/
public static final String IDENTITY_INFO_SUBMIT = "identity_card_ocr";//上传了身份证照片
public static final String PERSONAL_INFO_SUBMIT = "personal_info_submit";//上传了个人信息
public static final String CONTACT_INFO_SUBMIT = "contact_info_submit";//上传了紧急联系人信息
public static final String PROFESSIONAL_INFO_SUBMIT = "professinal_info_submit";//上传了工作信息
public static final String FACE_DETECTION = "face_detection"; /*进行了活体验证*/
public static final String FACE_DETECTION_SUCCESS = "face_detection_success"; /*活体验证成功,贷款处于已提交状态*/
public static final String BANK_INFO_SUBMIT = "bank_info_submit"; /*活体验证成功后,选择了产品,并填写了银行卡信息。贷款将进入机审(预审)阶段。*/
public static final String CANCEL_THE_LOAN_BY_USER = "cancel_the_loan_by_user"; /*用户取消了已提交的贷款*/
}
//package tech.starwin.constants;
//
///**
// * Created by SiKang on 2018/12/7.
// */
//public class TrackEvent {
// public static final String SMS_LOGIN_SUCCESS = "sms_login_success"; /*通过短信登录成功*/
// public static final String FACEBOOK_LOGIN_SUCCESS = "facebook_login_success"; /*通过facebook account kit 登录成功*/
// public static final String LOGOUT_SUCCESS = "logout_success"; /*用户退出了账号*/
// public static final String IDENTITY_INFO_SUBMIT = "identity_card_ocr";//上传了身份证照片
// public static final String PERSONAL_INFO_SUBMIT = "personal_info_submit";//上传了个人信息
// public static final String CONTACT_INFO_SUBMIT = "contact_info_submit";//上传了紧急联系人信息
// public static final String PROFESSIONAL_INFO_SUBMIT = "professinal_info_submit";//上传了工作信息
// public static final String FACE_DETECTION = "face_detection"; /*进行了活体验证*/
// public static final String FACE_DETECTION_SUCCESS = "face_detection_success"; /*活体验证成功,贷款处于已提交状态*/
// public static final String BANK_INFO_SUBMIT = "bank_info_submit"; /*活体验证成功后,选择了产品,并填写了银行卡信息。贷款将进入机审(预审)阶段。*/
// public static final String CANCEL_THE_LOAN_BY_USER = "cancel_the_loan_by_user"; /*用户取消了已提交的贷款*/
//
//}
......@@ -9,7 +9,6 @@ import io.reactivex.Observable;
import okhttp3.ResponseBody;
import tech.starwin.LibConfig;
import tech.starwin.base.BasePresenter;
import tech.starwin.constants.TrackEvent;
import tech.starwin.impl.HttpObserver;
import tech.starwin.mvp.api.LoanApi;
......@@ -17,6 +16,7 @@ import com.common.bean.HarvestGrantBean;
import com.common.bean.HistoryLoanAppInfoBean;
import com.common.bean.LatestLoanAppBean;
import com.common.bean.ProductBean;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.LoginManager;
import tech.starwin.utils.PreferencesManager;
......@@ -78,7 +78,6 @@ public class LoanPresenter extends BasePresenter<LoanApi> {
@Override
public void onSuccess(List<HistoryLoanAppInfoBean> data) {
TrackEventHelper.logEvent(TrackEvent.CANCEL_THE_LOAN_BY_USER);
view.onHttpSuccess(action, data);
}
......@@ -99,7 +98,28 @@ public class LoanPresenter extends BasePresenter<LoanApi> {
* 取消贷款
*/
public void cancelLoan(String action, String loanAppId) {
handleRequest(action, apiService.cancelLoan(loanAppId, LoginManager.get().getToken()));
handleRequest(apiService.cancelLoan(loanAppId, LoginManager.get().getToken()), new HttpObserver<ResponseBody>() {
@Override
public void onStart() {
view.onHttpStart(action, true);
}
@Override
public void onSuccess(ResponseBody data) {
TrackEventHelper.logEvent(TrackEvent.Api.LOAN_CANNELED);
view.onHttpSuccess(action, data);
}
@Override
public void onError(int code, String msg) {
view.onHttpError(action, msg);
}
@Override
public void onFinish() {
view.onHttpFinish(action);
}
});
}
......@@ -144,7 +164,7 @@ public class LoanPresenter extends BasePresenter<LoanApi> {
@Override
public void onSuccess(ResponseBody data) {
TrackEventHelper.logEvent(TrackEvent.BANK_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.BANK_INFO_SUBMITED);
view.onHttpSuccess(action, data);
}
......
......@@ -6,6 +6,7 @@ import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.common.bean.PhotoListBean;
import com.common.toolbox.tracker.TrackEvent;
import com.google.gson.Gson;
......@@ -18,7 +19,6 @@ import io.reactivex.functions.Function;
import okhttp3.MultipartBody;
import tech.starwin.LibConfig;
import tech.starwin.base.BasePresenter;
import tech.starwin.constants.TrackEvent;
import tech.starwin.impl.HttpObserver;
import tech.starwin.mvp.api.UploadApi;
......@@ -68,7 +68,7 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
@Override
public void onSuccess(OcrResultBean data) {
TrackEventHelper.logEvent(TrackEvent.IDENTITY_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.KTP_UPLOADED);
OcrResultBean.KTP ktp = new Gson().fromJson(data.getData(), OcrResultBean.KTP.class);
if (ktp != null && ktp.getResult() != null) {
if (ktp.getResult().equals("PASS")) {
......@@ -111,7 +111,6 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
public void faceVerify(final String action, String androidId, String faceData, double amount, int day, long productId, String method) {
TrackEventHelper.logEvent(TrackEvent.FACE_DETECTION);
handleRequest(
apiService.faceVerify(
"PAYDAY", amount, day, "D", null, null,
......@@ -130,7 +129,7 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
@Override
public void onSuccess(BasicAck data) {
TrackEventHelper.logEvent(TrackEvent.FACE_DETECTION_SUCCESS);
TrackEventHelper.logEvent(TrackEvent.Api.LIVENESS_SUCCESS);
view.onHttpSuccess(action, data);
}
......@@ -168,7 +167,7 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
@Override
public void onSuccess(BasicAck data) {
TrackEventHelper.logEvent(TrackEvent.FACE_DETECTION_SUCCESS);
TrackEventHelper.logEvent(TrackEvent.Api.LIVENESS_SUCCESS);
view.onHttpSuccess(action, data);
}
......
......@@ -23,7 +23,6 @@ import okhttp3.ResponseBody;
import tech.starwin.LibConfig;
import tech.starwin.base.BasePresenter;
import tech.starwin.constants.ActionEnum;
import tech.starwin.constants.TrackEvent;
import tech.starwin.impl.HttpObserver;
import tech.starwin.mvp.api.LoanApi;
import tech.starwin.mvp.api.UploadApi;
......@@ -44,6 +43,7 @@ import com.common.bean.RegionBean;
import com.common.bean.TokenInfoBean;
import com.common.bean.UserBankInfo;
import com.common.bean.UserBean;
import com.common.toolbox.tracker.TrackEvent;
import com.facebook.libfbref.FbDeepLink;
import tech.starwin.network.Gateway;
......@@ -122,7 +122,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
.flatMap(new Function<TokenInfoBean, ObservableSource<UserBean>>() {
@Override
public ObservableSource<UserBean> apply(TokenInfoBean tokenInfoBean) throws Exception {
TrackEventHelper.logEvent(TrackEvent.SMS_LOGIN_SUCCESS);
TrackEventHelper.logEvent(TrackEvent.Api.SMS_LOGIN_SUCCESS);
//刷新Token信息
LoginManager.get().notifyTokenInfo(tokenInfoBean);
uploadFirebaseToken(PreferencesManager.get().getFireBaseMessagingToken());
......@@ -218,6 +218,36 @@ public class UserPresenter extends BasePresenter<UserApi> {
/**
* 活动中心数据
*/
public void trackEvent(String type, String action, String event) {
apiService.trackEvent("system", "api", event)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new HttpObserver<ResponseBody>() {
@Override
public void onStart() {
}
@Override
public void onSuccess(ResponseBody data) {
LogUtils.d(TAG, "");
}
@Override
public void onError(int code, String msg) {
LogUtils.d(TAG, "");
}
@Override
public void onFinish() {
}
});
}
/**
* 上传firebaseToken
*/
public void uploadFirebaseToken(String token) {
......@@ -237,7 +267,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
.flatMap(new Function<TokenInfoBean, ObservableSource<UserBean>>() {
@Override
public ObservableSource<UserBean> apply(TokenInfoBean tokenInfoBean) throws Exception {
TrackEventHelper.logEvent(TrackEvent.FACEBOOK_LOGIN_SUCCESS);
TrackEventHelper.logEvent(TrackEvent.Api.ACCOUNT_KIT_LOGIN_SUCCESS);
//刷新Token信息
LoginManager.get().notifyTokenInfo(tokenInfoBean);
uploadFirebaseToken(PreferencesManager.get().getFireBaseMessagingToken());
......@@ -410,7 +440,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
@Override
public void onSuccess(ResponseBody data) {
TrackEventHelper.logEvent(TrackEvent.PERSONAL_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.PERSONAL_INFO_SUBMITED);
view.onHttpSuccess(action, data);
}
......@@ -439,7 +469,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
@Override
public void onSuccess(ResponseBody data) {
TrackEventHelper.logEvent(TrackEvent.CONTACT_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.CONTACT_INFO_SUBMITED);
view.onHttpSuccess(action, data);
}
......@@ -469,7 +499,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
@Override
public void onSuccess(ResponseBody data) {
TrackEventHelper.logEvent(TrackEvent.CONTACT_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.CONTACT_INFO_SUBMITED);
view.onHttpSuccess(action, data);
}
......@@ -550,7 +580,8 @@ public class UserPresenter extends BasePresenter<UserApi> {
handleRequest(action, Observable.zip(info, upload, new BiFunction<ResponseBody, ResponseBody, Boolean>() {
@Override
public Boolean apply(ResponseBody responseBody, ResponseBody responseBody2) throws Exception {
TrackEventHelper.logEvent(TrackEvent.PROFESSIONAL_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.WORK_CARD_UPLOADED);
TrackEventHelper.logEvent(TrackEvent.Api.WORK_INFO_SUBMITED);
return true;
}
}));
......@@ -563,7 +594,7 @@ public class UserPresenter extends BasePresenter<UserApi> {
@Override
public void onSuccess(ResponseBody data) {
TrackEventHelper.logEvent(TrackEvent.PROFESSIONAL_INFO_SUBMIT);
TrackEventHelper.logEvent(TrackEvent.Api.WORK_INFO_SUBMITED);
view.onHttpSuccess(action, data);
}
......
......@@ -8,13 +8,13 @@ import android.util.Base64;
import java.util.Map;
import tech.starwin.constants.TrackEvent;
import com.common.bean.DisplayBean;
import com.common.bean.GatewayInfoBean;
import com.common.bean.OcrResultBean;
import com.common.bean.TokenInfoBean;
import com.common.bean.UserBean;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.format_utils.StringFormat;
......@@ -264,7 +264,7 @@ public class PreferencesManager {
* 清除登录信息
*/
public void clearLoginInfo() {
TrackEventHelper.logEvent(TrackEvent.LOGOUT_SUCCESS);
TrackEventHelper.logEvent(TrackEvent.Api.LOG_OUT);
mEditor.remove("user_info");
mEditor.remove("token_info");
mEditor.remove("ktp_info");
......
......@@ -8,6 +8,9 @@ import android.widget.Button;
import android.widget.TextView;
import com.common.toolbox.tracker.TrackEvent;
import com.common.toolbox.tracker.TrackUtils;
import tech.starwin.LibConfig;
import tech.starwin.mvp.presenter.UserPresenter;
......@@ -26,7 +29,10 @@ public class TrackEventHelper {
*/
public static void LogClickEventByTag(View view) {
if (view.getTag() != null && view.getTag() instanceof String) {
logClickEventByName(view.getContext(), (String) view.getTag());
TrackEvent.Event event = TrackUtils.findEventByTag((String) view.getTag());
if (event != null) {
logEvent(event);
}
}
}
......@@ -51,7 +57,6 @@ public class TrackEventHelper {
public static void logClickEventByName(Context context, String itemName) {
Bundle bundle = new Bundle();
String eventName = "click_" + itemName;
//TODO - FireBase配置
// bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, eventName);
//FireBase 埋点
// FirebaseAnalytics.getInstance(context).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
......@@ -64,7 +69,6 @@ public class TrackEventHelper {
* 行为埋点
*/
public static void logEvent(String eventName) {
//TODO - FireBase配置
//FireBase 埋点
// FirebaseAnalytics.getInstance(LibConfig.getActivity()).logEvent(eventName, null);
userPresenter.trackEvent(eventName);
......@@ -73,6 +77,14 @@ public class TrackEventHelper {
}
}
/**
* 行为埋点
*/
public static void logEvent(TrackEvent.Event event) {
LogUtils.d("TrackEvent", event.type() + " " + event.action() + " " + event.value());
userPresenter.trackEvent(event.type(), event.action(), event.value());
}
public static void setOnTrackEventListener(OnTrackEventListener onTrackEventListener) {
TrackEventHelper.onTrackEventListener = onTrackEventListener;
}
......
......@@ -21,6 +21,7 @@ import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.common.toolbox.tracker.TrackEvent;
import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions;
......@@ -41,6 +42,7 @@ import tech.starwin.BuildConfig;
import tech.starwin.LibConfig;
import tech.starwin.utils.LogUtils;
import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.TrackEventHelper;
import tech.starwin.utils.ui_utils.DialogFactory;
/**
......@@ -134,12 +136,15 @@ public class PermissionsHelper {
if (permission.granted) {
allowed.add(permission);
listener.onAllow(permission);
TrackEventHelper.logEvent(TrackEvent.Click.ALLOW_PERMISSION);
} else if (permission.shouldShowRequestPermissionRationale) {
refused.add(permission);
listener.onRefuse(permission);
TrackEventHelper.logEvent(TrackEvent.Click.REFUSE_PERMISSION);
} else {
neverAsk.add(permission);
listener.onRefuseAndNeverAskAgain(permission);
TrackEventHelper.logEvent(TrackEvent.Click.REFUSE_PERMISSION);
}
if (allowed.size() + refused.size() + neverAsk.size() == permissions.length) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment