Commit 48efee29 by sikang

bugfix

parent 9384897c
......@@ -94,8 +94,6 @@ dependencies {
websiteImplementation 'com.tencent.bugly:crashreport:3.0.0'
implementation project(':cash_plugin_toolbox')
}
walle {
......
......@@ -172,5 +172,4 @@ dependencies {
//zendesk
// api group: 'com.zendesk', name: 'support', version: '2.1.1'
// api 'com.google.code.findbugs:jsr305:3.0.2'
compileOnly project(':cash_plugin_toolbox')
}
......@@ -16,8 +16,9 @@ import android.widget.CheckBox;
import android.widget.TextView;
import com.common.base.BaseActivity;
import com.common.toolbox.app_utils.DeviceInfo;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.context_utils.DeviceUtils;
import tech.starwin.utils.tracker.TrackEvent;
import com.common.widget.TopBar;
import org.greenrobot.eventbus.EventBus;
......@@ -89,13 +90,13 @@ public class AgreementPolicyActivity extends BaseActivity {
public void onEventClick(View v) {
if (v.getId() == R.id.dialog_policy_agreement_tv) {
String agreement = Gateway.getAgreementPolicyUrl();
if (DeviceInfo.isReviewMachine(context)) {
if (DeviceUtils.getInstance().isReviewMachine(context)) {
agreement = getLocalPolicy();
}
WebActivity.start(context, context.getString(R.string.login_statement_title), agreement);
} else if (v.getId() == R.id.dialog_policy_ksp_tv) {
String kspUrl = Gateway.getKSPUrl();
if (DeviceInfo.isReviewMachine(context)) {
if (DeviceUtils.getInstance().isReviewMachine(context)) {
kspUrl = "file:///android_asset/web/privacyKsp.html";
}
WebActivity.start(context, context.getString(R.string.koperasi_form), kspUrl);
......@@ -229,7 +230,7 @@ public class AgreementPolicyActivity extends BaseActivity {
}
private void loadKspPolicy() {
if(DeviceInfo.isReviewMachine()){
if(DeviceUtils.getInstance().isReviewMachine(this)){
webView.loadUrl("file:///android_asset/web/privacyKsp.html");
}else{
webView.loadUrl(Gateway.getKSPUrl());
......@@ -237,7 +238,7 @@ public class AgreementPolicyActivity extends BaseActivity {
}
private void loadPolicy() {
if(DeviceInfo.isReviewMachine()){
if(DeviceUtils.getInstance().isReviewMachine(this)){
webView.loadUrl(getLocalPolicy());
}else{
webView.loadUrl(Gateway.getAgreementPolicyUrl());
......
......@@ -14,7 +14,6 @@ import android.widget.TextView;
import com.common.base.BaseActivity;
import com.common.bean.ProductBean;
import com.common.toolbox.app_utils.DeviceInfo;
import com.common.widget.PenetrateFrameLayout;
import com.common.widget.TopBar;
import com.facebook.accountkit.AccountKitError;
......
......@@ -13,7 +13,7 @@ import android.widget.Button;
import android.widget.ImageView;
import com.common.base.BaseActivity;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.tracker.TrackEvent;
import com.common.widget.CameraView;
import com.common.widget.TopBar;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
......
......@@ -7,16 +7,7 @@ import android.os.Bundle;
import android.support.multidex.MultiDex;
import android.support.multidex.MultiDexApplication;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.common.toolbox.PluginConfig;
import com.common.toolbox.app_utils.DeviceInfo;
import com.jcminarro.philology.Philology;
import com.jcminarro.philology.PhilologyInterceptor;
import com.jcminarro.philology.PhilologyRepository;
......@@ -47,7 +38,6 @@ public abstract class BaseApplication extends MultiDexApplication {
protected void attachBaseContext(Context base) {
DeviceUtils.getInstance().init(base);
initLibCnofig();
initToolBox();
// Context languageContext = AppLanguageUtils.attachBaseContext(base, LibConfig.LANGUAGE);
// super.attachBaseContext(ViewPumpContextWrapper.wrap(Philology.INSTANCE.wrap(languageContext)));
super.attachBaseContext(AppLanguageUtils.attachBaseContext(base, LibConfig.LANGUAGE));
......@@ -79,7 +69,6 @@ public abstract class BaseApplication extends MultiDexApplication {
InstallReferrerHelper.refershInstallReferrer(this);
LibConfig.initLib(this);
PluginConfig.init(this);
// //已签名的APP,这里会输出当前签名的 hashCode 值,将 hashCode 在服务端备份(更换签名时要同时更新备份)
// LogUtils.d("Signal_Log", "hashCode: " + JNISignal.getKeyStoreHashCode(this));
// /*
......@@ -109,7 +98,4 @@ public abstract class BaseApplication extends MultiDexApplication {
public abstract void initLibCnofig();
private void initToolBox(){
PluginConfig.IS_WEBSITE=LibConfig.IS_COLLECT_MODE;
}
}
......@@ -3,7 +3,6 @@ package tech.starwin.base;
import android.annotation.SuppressLint;
import com.common.toolbox.app_utils.DeviceInfo;
import io.reactivex.Observable;
import io.reactivex.Observer;
......@@ -18,6 +17,7 @@ import tech.starwin.LibConfig;
import tech.starwin.impl.HttpObserver;
import tech.starwin.mvp.IView;
import tech.starwin.network.ServiceGenerator;
import tech.starwin.utils.context_utils.DeviceUtils;
/**
* Created by SiKang on 2018/9/14.
......@@ -48,7 +48,7 @@ public class BasePresenter<T> {
* 处理请求
*/
protected <T> void handleRequest(Observable<T> observable, Observer<T> observer) {
if (DeviceInfo.isReviewMachine(LibConfig.getContext())) {
if (DeviceUtils.getInstance().isReviewMachine(LibConfig.getContext())) {
return;
}
observable = view == null ? observable : observable.compose(view.bindToLifecycle());
......@@ -59,7 +59,7 @@ public class BasePresenter<T> {
protected <T> void handleRequest(final String action, Observable<T> observable) {
if (DeviceInfo.isReviewMachine(LibConfig.getContext())) {
if (DeviceUtils.getInstance().isReviewMachine(LibConfig.getContext())) {
return;
}
observable = view == null ? observable : observable.compose(view.bindToLifecycle());
......
......@@ -16,7 +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.tracker.TrackEvent;
import tech.starwin.utils.LoginManager;
import tech.starwin.utils.PreferencesManager;
......
......@@ -14,7 +14,7 @@ import com.common.bean.CollectInfoEntity;
import com.common.bean.OcrResultBean;
import com.common.bean.PhotoListBean;
import com.common.bean.UploadCollectionBean;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.tracker.TrackEvent;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
......
......@@ -19,9 +19,7 @@ import com.common.bean.RecordFilesResponse;
import com.common.bean.TokenInfoBean;
import com.common.bean.UserBankInfo;
import com.common.bean.UserBean;
import com.common.toolbox.PluginConfig;
import com.common.toolbox.app_utils.DeviceInfo;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.tracker.TrackEvent;
import com.facebook.libfbref.FbDeepLink;
import com.google.gson.Gson;
......@@ -58,7 +56,7 @@ import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.TrackEventHelper;
import tech.starwin.utils.context_utils.DeviceUtils;
/**
/**
* Created by SiKang on 2018/9/14.
*/
public class UserPresenter extends BasePresenter<UserApi> {
......@@ -648,8 +646,6 @@ public class UserPresenter extends BasePresenter<UserApi> {
AccountKitUtils.initAccountKit(appId, LibConfig.APP_NAME, token);
}
}
//是否显示假界面
PluginConfig.IS_FAKE_MODE = data.isFakeProductFlag();
//不开启同盾
if (!data.isTongDunFlag()) {
LibConfig.TONGDUN_PARENT_KEY = "";
......
......@@ -5,8 +5,6 @@ import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import com.common.toolbox.app_utils.DeviceInfo;
import com.common.toolbox.app_utils.RequestHandler;
import com.facebook.libfbref.FbDeepLink;
import java.io.IOException;
......@@ -20,7 +18,9 @@ import okhttp3.Response;
import tech.starwin.LibConfig;
import tech.starwin.utils.LogUtils;
import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.RequestHandler;
import tech.starwin.utils.context_utils.AppInfoUtils;
import tech.starwin.utils.context_utils.DeviceUtils;
/**
* Created by XLEO on 2018/1/30.
......@@ -47,8 +47,8 @@ public class FirebaseHeaderInterceptor implements Interceptor {
String secretKey = PreferencesManager.get().getCustomerInfo().getRestUrlSignKey();
//header签名
new RequestHandler.Builder(secretKey)
.headerDeviceSign(DeviceInfo.getSignFromHardware())
.headerSDSign(DeviceInfo.getDeviceSignFromSD())
.headerDeviceSign(DeviceUtils.getInstance().getSignFromHardware())
.headerSDSign("")
.bindHttpBuilder(request, builder)
.build().signHeaders();
}
......
......@@ -11,7 +11,7 @@ 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.tracker.TrackEvent;
import java.util.Map;
......
......@@ -4,10 +4,6 @@ import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import com.common.toolbox.app_utils.Base64;
import com.common.toolbox.app_utils.DeviceInfo;
import com.common.toolbox.app_utils.StringUtils;
import com.common.toolbox.app_utils.ThreeDes;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
......@@ -21,6 +17,8 @@ import java.util.UUID;
import okhttp3.FormBody;
import okhttp3.Request;
import tech.starwin.utils.context_utils.DeviceUtils;
import tech.starwin.utils.format_utils.StringFormat;
/**
* Created by SiKang on 2019-08-07.
......@@ -73,8 +71,8 @@ public class RequestHandler {
String signature = paramStr + decryptSecretKey(secretKey) + random;
Log.d(TAG, "code - " + signature);
Log.d(TAG, "sign - " + StringUtils.MD5(signature));
return StringUtils.MD5(signature);
Log.d(TAG, "sign - " + StringFormat.MD5(signature));
return StringFormat.MD5(signature);
}
......@@ -90,7 +88,7 @@ public class RequestHandler {
.addHeader("X-DEVICE-SIGN", headers.get(DEVICE_SIGN)); //设备指纹
}
requestBuilder.addHeader("X-SDK-VERSION", String.valueOf(Build.VERSION.SDK_INT)) //Android SDK 版本
.addHeader("X-HAEDWARE-INFO", URLEncoder.encode(DeviceInfo.getHardwareInfo(), "UTF-8")) //硬件信息
.addHeader("X-HAEDWARE-INFO", URLEncoder.encode("", "UTF-8")) //硬件信息
.addHeader("X-APP-SIGN", sign) // Header 签名
.addHeader("X-APP-RANDOM", getRandom());// 随机串
} catch (UnsupportedEncodingException e) {
......
......@@ -8,8 +8,8 @@ import android.widget.Button;
import android.widget.TextView;
import com.common.toolbox.tracker.TrackEvent;
import com.common.toolbox.tracker.TrackUtils;
import tech.starwin.utils.tracker.TrackEvent;
import tech.starwin.utils.tracker.TrackUtils;
import tech.starwin.LibConfig;
import tech.starwin.mvp.presenter.UserPresenter;
......
......@@ -10,8 +10,6 @@ import android.os.Build;
import android.os.LocaleList;
import android.util.DisplayMetrics;
import com.common.toolbox.PluginConfig;
import com.common.toolbox.app_utils.DeviceInfo;
import java.util.HashMap;
import java.util.Locale;
......@@ -23,9 +21,6 @@ public class AppLanguageUtils {
public static void setLanguage(Context context, String language) {
if(DeviceInfo.isReviewMachine() || "auto".equals(language)){
return;
}
Resources resources = context.getApplicationContext().getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
Configuration config = resources.getConfiguration();
......@@ -60,10 +55,6 @@ public class AppLanguageUtils {
public static Context attachBaseContext(Context context, String language) {
PluginConfig.isSafeDevice(context);
if(DeviceInfo.isReviewMachine() || "auto".equals(language)){
return context;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return updateResources(context, getLocale(language));
} else {
......
......@@ -21,8 +21,6 @@ import android.util.Log;
import com.common.bean.AppInfoBean;
import com.common.bean.DeviceInfoBean;
import com.common.toolbox.PluginConfig;
import com.common.toolbox.app_utils.StringUtils;
import java.io.BufferedReader;
import java.io.InputStream;
......@@ -41,6 +39,7 @@ import tech.starwin.BuildConfig;
import tech.starwin.LibConfig;
import tech.starwin.utils.LogUtils;
import tech.starwin.utils.PreferencesManager;
import tech.starwin.utils.format_utils.StringFormat;
/**
* Created by SiKang on 2019-11-15.
......@@ -80,7 +79,7 @@ public class DeviceUtils {
};
private String[] pkgWhiteList = new String[]{
StringUtils.toBase64(BuildConfig.PACKAGE_NAME),
StringFormat.base64(BuildConfig.PACKAGE_NAME),
// "com.google.android.music",
// "com.google.android.apps.photos",
// "com.google.android.apps.tachyon",
......@@ -213,7 +212,7 @@ public class DeviceUtils {
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
boolean isWhiteList = false;
for (String pkgName : pkgWhiteList) {
pkgName = StringUtils.fromBase64(pkgName);
pkgName = StringFormat.fromBase64(pkgName);
if (pkgName.contains("%")) {
if (packageInfo.packageName.contains(pkgName.replace("%", ""))) {
isWhiteList = true;
......@@ -267,8 +266,8 @@ public class DeviceUtils {
//如果发现包名黑名单,true
for (String pkgName : pkgBlackList) {
LogUtils.d("DeviceUtilsInfo",StringUtils.fromBase64(pkgName));
if (activePkgList.contains(StringUtils.fromBase64(pkgName))) {
LogUtils.d("DeviceUtilsInfo",StringFormat.fromBase64(pkgName));
if (activePkgList.contains(StringFormat.fromBase64(pkgName))) {
return true;
}
}
......
......@@ -21,7 +21,7 @@ import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.common.toolbox.tracker.TrackEvent;
import tech.starwin.utils.tracker.TrackEvent;
import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions;
......
package tech.starwin.utils.tracker;
/**
* Created by SiKang on 2019/6/14.
*/
public final class TrackEvent {
/**
* Api 参数
*/
private static String type_system = "system";
private static String action_api = "api";
private static String type_user = "user";
private static String actoin_click = "click";
private static String action_screen = "hold";
public interface Event {
String type();
String action();
String value();
}
public enum Screen implements Event {
/**
* 进入主页
*/
HOME(type_user, action_screen, "home"),
/**
* 进入假界面
*/
FAKE_HOME(type_user, action_screen, "fake_home"),
/**
* 进入FB登录页面
*/
ACCOUNT_KIT(type_user, action_screen, "account_kit"),
/**
* 进入SMS登录页面
*/
SMS_LOGIN(type_user, action_screen, "sms_login");
public String type;
public String action;
public String event;
Screen(String type, String action, String event) {
this.type = type;
this.action = action;
this.event = event;
}
@Override
public String type() {
return type;
}
@Override
public String action() {
return action;
}
@Override
public String value() {
return event;
}
}
public enum Click implements Event {
/**
* 点击允许权限 value: 权限名
*/
ALLOW_PERMISSION(type_user, actoin_click, "allow_permission"),
/**
* 点击拒绝权限 value: 权限名
*/
REFUSE_PERMISSION(type_user, actoin_click, "refuse_permission"),
/**
* 点击同意隐私协议
*/
AGREE_PRIVACY(type_user, actoin_click, "agree_privacy"),
/**
* 点击一个产品
*/
PRODUCT_ITEM(type_user, actoin_click, "product_list"),
/**
* 点击登录(仅限SMS登录)
*/
SMS_LOGIN(type_user, actoin_click, "sms_login"),
/**
* 点击申请产品
*/
LOAN_APPLY(type_user, actoin_click, "Loan_apply"),
/**
* 点击开始活体
*/
START_LIVENESS(type_user, actoin_click, "start_liveness"),
/**
* 点击提交银行卡信息
*/
SUBMIT_BANK_INFO(type_user, actoin_click, "submit_bank_info"),
/**
* 点击开始KTP拍照
*/
KTP_SHOT(type_user, actoin_click, "ktp_shot"),
/**
* 点击提交KTP信息(无api调用)
*/
SUBMIT_KTP_INFO(type_user, actoin_click, "submit_ktp_info"),
/**
* 点击提交个人信息
*/
SUBMIT_PERSONAL_INFO(type_user, actoin_click, "submit_personal_info"),
/**
* 点击提交紧急联系人
*/
SUBMIT_CONTACT_INFO(type_user, actoin_click, "submit_contact_info"),
/**
* 点击开始工作证件拍照
*/
WORK_CARD_SHOT(type_user, actoin_click, "work_card_shot"),
/**
* 点击提交工作信息
*/
SUBMIT_WORK_INFO(type_user, actoin_click, "submit_work_info"),
/**
* 点击三方认证 value: 具体认证项目
*/
THIRD_PART_VERTIFY(type_user, actoin_click, "third_part_vertify"),
/**
* 点击一条贷款记录
*/
LOAN_HISTORY_ITEM(type_user, actoin_click, "loan_history_item"),
/**
* 点击取消贷款
*/
CANCEL_LOAN(type_user, actoin_click, "cancel_loan"),
/**
* 点击查看隐私协议
*/
PRIVACY_AGREEMENT(type_user, actoin_click, "privacy_agreement");
public String type;
public String action;
public String event;
Click(String type, String action, String event) {
this.type = type;
this.action = action;
this.event = event;
}
@Override
public String type() {
return type;
}
@Override
public String action() {
return action;
}
@Override
public String value() {
return event;
}
}
public enum Api implements Event {
/**
* FB登录成功
*/
ACCOUNT_KIT_LOGIN_SUCCESS(type_system, action_api, "accountkit_login_success"),
/**
* SMS登录成功
*/
SMS_LOGIN_SUCCESS(type_system, action_api, "sms_login_success"),
/**
* 用户退出登录
*/
LOG_OUT(type_system, action_api, "log_out"),
/**
* 活体识别成功
*/
LIVENESS_SUCCESS(type_system, action_api, "liveness_success"),
/**
* 提交银行卡信息成功
*/
BANK_INFO_SUBMITED(type_system, action_api, "bank_info_submited"),
/**
* 上传KTP照片成功
*/
KTP_UPLOADED(type_system, action_api, "ktp_uploaded"),
/**
* 个人信息提交成功
*/
PERSONAL_INFO_SUBMITED(type_system, action_api, "personal_info_submited"),
/**
* 紧急联系人提交成功
*/
CONTACT_INFO_SUBMITED(type_system, action_api, "contact_info_submited"),
/**
* 工作照上传成功
*/
WORK_CARD_UPLOADED(type_system, action_api, "work_card_uploaded"),
/**
* 工作信息提交成功
*/
WORK_INFO_SUBMITED(type_system, action_api, "work_card_submited"),
/**
* 取消贷款成功
*/
LOAN_CANNELED(type_system, action_api, "loan_canceled");
public String type;
public String action;
public String event;
Api(String type, String action, String event) {
this.type = type;
this.action = action;
this.event = event;
}
@Override
public String type() {
return type;
}
@Override
public String action() {
return action;
}
@Override
public String value() {
return event;
}
}
}
package tech.starwin.utils.tracker;
/**
* Created by SiKang on 2019/6/18.
*/
public class TrackUtils {
public static TrackEvent.Event findEventByTag(String viewTag) {
switch (viewTag) {
case "PRODUCT_ITEM":
return TrackEvent.Click.PRODUCT_ITEM;
case "SMS_LOGIN":
return TrackEvent.Click.SMS_LOGIN;
case "LOAN_APPLY":
return TrackEvent.Click.LOAN_APPLY;
case "SUBMIT_BANK_INFO":
return TrackEvent.Click.SUBMIT_BANK_INFO;
case "KTP_SHOT":
return TrackEvent.Click.KTP_SHOT;
case "SUBMIT_KTP_INFO":
return TrackEvent.Click.SUBMIT_KTP_INFO;
case "SUBMIT_PERSONAL_INFO":
return TrackEvent.Click.SUBMIT_PERSONAL_INFO;
case "SUBMIT_CONTACT_INFO":
return TrackEvent.Click.SUBMIT_CONTACT_INFO;
case "WORK_CARD_SHOT":
return TrackEvent.Click.WORK_CARD_SHOT;
case "SUBMIT_WORK_INFO":
return TrackEvent.Click.SUBMIT_WORK_INFO;
case "LOAN_HISTORY_ITEM":
return TrackEvent.Click.LOAN_HISTORY_ITEM;
case "CANCEL_LOAN":
return TrackEvent.Click.CANCEL_LOAN;
case "PRIVACY_AGREEMENT":
return TrackEvent.Click.PRIVACY_AGREEMENT;
}
return null;
}
}
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