Commit e15ea854 authored by mengcuiguang's avatar mengcuiguang

1、添加风控规则 2、热门活动添加游戏 3、按用户渠道匹配代码位 4、优化黑名单校验 代码优化

parent 49d3c7e6
...@@ -9,8 +9,8 @@ android { ...@@ -9,8 +9,8 @@ android {
applicationId "com.mints.goodmoney" applicationId "com.mints.goodmoney"
minSdkVersion rootProject.ext.androidMinSdkVersion minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion targetSdkVersion rootProject.ext.androidTargetSdkVersion
versionCode 7 versionCode 8
versionName "1.0.6" versionName "1.0.7"
flavorDimensions "default" flavorDimensions "default"
// dex突破65535的限制 // dex突破65535的限制
...@@ -105,8 +105,7 @@ android { ...@@ -105,8 +105,7 @@ android {
productFlavors { productFlavors {
goodmoneypkg {} goodmoneypkg {}
// toutiao {} toutiao {}
// sougou_123 {}
} }
productFlavors.all { productFlavors.all {
......
...@@ -13,6 +13,7 @@ import androidx.multidex.MultiDexApplication; ...@@ -13,6 +13,7 @@ import androidx.multidex.MultiDexApplication;
import com.bun.miitmdid.core.JLibrary; import com.bun.miitmdid.core.JLibrary;
import com.mints.goodmoney.common.Constant; import com.mints.goodmoney.common.Constant;
import com.mints.goodmoney.manager.ChannelManager;
import com.mints.goodmoney.manager.LiebaoManager; import com.mints.goodmoney.manager.LiebaoManager;
import com.mints.goodmoney.manager.MhManager; import com.mints.goodmoney.manager.MhManager;
import com.mints.goodmoney.manager.MiitHelper; import com.mints.goodmoney.manager.MiitHelper;
...@@ -105,10 +106,8 @@ public class MintsApplication extends MultiDexApplication { ...@@ -105,10 +106,8 @@ public class MintsApplication extends MultiDexApplication {
// 移动安全联盟 oaid // 移动安全联盟 oaid
initMiitHelper(); initMiitHelper();
// 按包渠道更新代码位 // 按渠道匹配代码位
TtCsjAdManager.updataIdByChannel(); ChannelManager.INSTANCE.updataCodeIdForRegisterChannel(null);
YlhAdManager.INSTANCE.updataIdByChannel();
// 子线程初始化三方SDK // 子线程初始化三方SDK
String processName = SystemUtils.INSTANCE.getProcessName(this, android.os.Process.myPid()); String processName = SystemUtils.INSTANCE.getProcessName(this, android.os.Process.myPid());
......
...@@ -43,6 +43,7 @@ object BannerManager { ...@@ -43,6 +43,7 @@ object BannerManager {
.setCodeId(codeId) //广告位id .setCodeId(codeId) //广告位id
.setSupportDeepLink(true) .setSupportDeepLink(true)
.setAdCount(1) //请求广告数量为1到3条 .setAdCount(1) //请求广告数量为1到3条
.setNativeAdType(AdSlot.TYPE_BANNER)
.setExpressViewAcceptedSize(expressViewAcceptedSizeWidth, expressViewAcceptedSizeHeight) //期望模板广告view的size,单位dp .setExpressViewAcceptedSize(expressViewAcceptedSizeWidth, expressViewAcceptedSizeHeight) //期望模板广告view的size,单位dp
.setImageAcceptedSize(640, 320) //这个参数设置即可,不影响模板广告的size .setImageAcceptedSize(640, 320) //这个参数设置即可,不影响模板广告的size
.build() .build()
......
...@@ -28,6 +28,11 @@ public class AppConfig { ...@@ -28,6 +28,11 @@ public class AppConfig {
*/ */
public static boolean app_black_flag = false; public static boolean app_black_flag = false;
/**
* 用户渠道对应代码位
*/
public static String user_channel_ad = "";
/** /**
* 趣步赚成功标记 * 趣步赚成功标记
*/ */
......
...@@ -175,6 +175,7 @@ object Constant { ...@@ -175,6 +175,7 @@ object Constant {
const val HOT_ACTIVITY_CAICY = "ccy" const val HOT_ACTIVITY_CAICY = "ccy"
const val HOT_ACTIVITY_BOOK = "readBook" const val HOT_ACTIVITY_BOOK = "readBook"
const val HOT_ACTIVITY_NEWS = "TO_RUISHI" const val HOT_ACTIVITY_NEWS = "TO_RUISHI"
const val HOT_ACTIVITY_DHGAME = "dhGame"
// 打开激活 // 打开激活
const val FIRST_DEVICE_FLAG = "first_device_flag" const val FIRST_DEVICE_FLAG = "first_device_flag"
...@@ -206,4 +207,10 @@ object Constant { ...@@ -206,4 +207,10 @@ object Constant {
const val WRAPPER_TYPE_NEWS = 0 const val WRAPPER_TYPE_NEWS = 0
const val WRAPPER_TYPE_BOOK = 1 const val WRAPPER_TYPE_BOOK = 1
//1登录,2提现,3任务
const val RISK_EVENT_ID_LOGIN = 1
const val RISK_EVENT_ID_DRAWCASH = 2
const val RISK_EVENT_ID_TASK = 3
} }
...@@ -2,13 +2,16 @@ package com.mints.goodmoney.common ...@@ -2,13 +2,16 @@ package com.mints.goodmoney.common
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo import android.content.pm.PackageInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.NetworkInfo
import android.net.Proxy import android.net.Proxy
import android.net.wifi.WifiInfo import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager import android.net.wifi.WifiManager
import android.os.BatteryManager
import android.os.Build import android.os.Build
import android.os.SystemClock import android.os.SystemClock
import android.provider.Settings import android.provider.Settings
...@@ -115,7 +118,7 @@ class DeviceInfo private constructor() { ...@@ -115,7 +118,7 @@ class DeviceInfo private constructor() {
/** /**
* 是否使用vpn 需使用网络权限 * 是否使用vpn 需使用网络权限
*/ */
val isVPN: Boolean val isVPN: Int
get() { get() {
try { try {
val niList = NetworkInterface.getNetworkInterfaces() val niList = NetworkInterface.getNetworkInterfaces()
...@@ -125,14 +128,14 @@ class DeviceInfo private constructor() { ...@@ -125,14 +128,14 @@ class DeviceInfo private constructor() {
continue continue
} }
if ("tun0" == intf.name || "ppp0" == intf.name) { if ("tun0" == intf.name || "ppp0" == intf.name) {
return true // The VPN is up return 1 // The VPN is up
} }
} }
} }
} catch (e: Throwable) { } catch (e: Throwable) {
e.printStackTrace() e.printStackTrace()
} }
return false return 0
} }
/** /**
...@@ -864,6 +867,77 @@ class DeviceInfo private constructor() { ...@@ -864,6 +867,77 @@ class DeviceInfo private constructor() {
return "02:00:00:00:00:00" return "02:00:00:00:00:00"
} }
/**
* 否充电中
*/
val isCharging: Int
get() {
try {
val batteryBroadcast: Intent? = mContext!!.registerReceiver(null,
IntentFilter(Intent.ACTION_BATTERY_CHANGED))
val isCharging = batteryBroadcast?.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0
if (isCharging) {
return 1
}
} catch (e: Exception) {
e.printStackTrace()
}
return 0
}
/**
* 否处于USB调试模式
*/
val getUsbStatus: Int
get() {
try {
val enableAdb = Settings.Secure.getInt(
mContext!!.contentResolver, Settings.Secure.ADB_ENABLED, 0) > 0
if (enableAdb) {
return 1
}
} catch (e: Exception) {
e.printStackTrace()
}
return 0
}
/**
* 是否连接wifi
*/
val getWifiConnected: Int
get() {
try {
val connectivityManager = mContext!!.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetInfo: NetworkInfo? = connectivityManager.activeNetworkInfo
if (activeNetInfo != null && activeNetInfo.getType() === ConnectivityManager.TYPE_WIFI) {
return 1
}
} catch (e: Exception) {
e.printStackTrace()
}
return 0
}
/**
* 是否root
*/
val isRoot: Int
get() {
var file: File? = null
val paths = arrayOf("/system/bin/", "/system/xbin/", "/system/sbin/", "/sbin/", "/vendor/bin/", "/su/bin/")
try {
for (path in paths) {
file = File(path + "su")
if (file.exists() && file.canExecute()) {
return 1
}
}
} catch (x: java.lang.Exception) {
x.printStackTrace()
}
return 0
}
companion object { companion object {
private var _inst: DeviceInfo? = null private var _inst: DeviceInfo? = null
......
package com.mints.goodmoney.manager package com.mints.goodmoney.manager
import com.mints.goodmoney.mvp.model.AdcodeBean
import com.mints.goodmoney.mvp.model.UserMsgBean
/** /**
* 渠道管理, 根据渠道名称 调用不同的代码位 * 渠道管理
*/ */
object ChannelManager { object ChannelManager {
const val CHANNEL_XIAOJUJI = "xiaojuji"
const val CHANNEL_ZITOU = "zitou"
const val CHANNEL_QIAOSHUI = "qiaoshui"
const val CHANNEL_SOUGOU = "sougou" const val CHANNEL_TOUTIAO = "toutiao"
const val CHANNEL_QUTOUTIAO = "qutoutiao" /**
* 按用户注册渠道 动态更新代码位
*/
fun updataCodeIdForRegisterChannel(idBean: AdcodeBean?) {
TtCsjAdManager.updataIdByChannel(idBean)
YlhAdManager.updataIdByChannel(idBean)
}
} }
\ No newline at end of file
...@@ -11,6 +11,7 @@ import com.bytedance.sdk.openadsdk.TTAdNative; ...@@ -11,6 +11,7 @@ import com.bytedance.sdk.openadsdk.TTAdNative;
import com.bytedance.sdk.openadsdk.TTAppDownloadListener; import com.bytedance.sdk.openadsdk.TTAppDownloadListener;
import com.bytedance.sdk.openadsdk.TTNativeExpressAd; import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
import com.mints.goodmoney.MintsApplication; import com.mints.goodmoney.MintsApplication;
import com.mints.goodmoney.utils.LogUtil;
import com.mints.goodmoney.utils.ToastUtil; import com.mints.goodmoney.utils.ToastUtil;
import java.util.List; import java.util.List;
...@@ -84,6 +85,9 @@ public class TTNativeExpressManager { ...@@ -84,6 +85,9 @@ public class TTNativeExpressManager {
@Override @Override
public void onError(int code, String message) { public void onError(int code, String message) {
LogUtil.d("通用TTNativeExpressManager", "onError " + code + message);
if (view != null) { if (view != null) {
view.removeAllViews(); view.removeAllViews();
} }
......
...@@ -8,6 +8,8 @@ import com.bytedance.sdk.openadsdk.TTAdSdk; ...@@ -8,6 +8,8 @@ import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.mints.goodmoney.BuildConfig; import com.mints.goodmoney.BuildConfig;
import com.mints.goodmoney.MintsApplication; import com.mints.goodmoney.MintsApplication;
import com.mints.goodmoney.common.Constant; import com.mints.goodmoney.common.Constant;
import com.mints.goodmoney.mvp.model.AdcodeBean;
import com.mints.goodmoney.mvp.model.UserMsgBean;
import com.mints.library.utils.CommonUtils; import com.mints.library.utils.CommonUtils;
/** /**
...@@ -18,8 +20,6 @@ public class TtCsjAdManager { ...@@ -18,8 +20,6 @@ public class TtCsjAdManager {
public static final String TT_AD_APPID = "5113521"; public static final String TT_AD_APPID = "5113521";
public static final String TT_AD_NAME = Constant.MINTS_APP_NAME; public static final String TT_AD_NAME = Constant.MINTS_APP_NAME;
// 按渠道划分代码位
//============================== 版本升级、分享 START ==============================
/*banner*/ /*banner*/
public static String TT_AD_BANNER_MY = "945661050";// 个人中心 public static String TT_AD_BANNER_MY = "945661050";// 个人中心
public static String TT_AD_BANNER_JULEYUN = "945675532";// 聚乐云 public static String TT_AD_BANNER_JULEYUN = "945675532";// 聚乐云
...@@ -44,7 +44,6 @@ public class TtCsjAdManager { ...@@ -44,7 +44,6 @@ public class TtCsjAdManager {
/*插屏广告*/ /*插屏广告*/
public static String TT_AD_INSERT_LOADING_ID_LIEBAO = "945608874";//猎豹游戏加载时 public static String TT_AD_INSERT_LOADING_ID_LIEBAO = "945608874";//猎豹游戏加载时
public static String TT_AD_INSERT_LOADING_ID_JULEYUN = "945675533";//聚乐云 public static String TT_AD_INSERT_LOADING_ID_JULEYUN = "945675533";//聚乐云
//============================== 版本升级、分享 END ==============================
private static boolean sInit; private static boolean sInit;
...@@ -96,61 +95,64 @@ public class TtCsjAdManager { ...@@ -96,61 +95,64 @@ public class TtCsjAdManager {
/** /**
* 按包渠道更新代码位 * 按包渠道更新代码位
*/ */
public static void updataIdByChannel() { public static void updataIdByChannel(AdcodeBean idBean) {
String channel = CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME"); // 渠道对象为空
if (channel.contains(ChannelManager.CHANNEL_ZITOU) if (idBean == null) {
|| channel.contains(ChannelManager.CHANNEL_XIAOJUJI) String channel = CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME");
|| channel.contains(ChannelManager.CHANNEL_QIAOSHUI)) { if (channel.contains(ChannelManager.CHANNEL_TOUTIAO)) {
// 信息流 // 信息流
TT_AD_NATIVEEXPRESS_AWARD = "945666217"; TT_AD_NATIVEEXPRESS_AWARD = "945666217";
TT_AD_NATIVEEXPRESS_WALK = "945666097"; TT_AD_NATIVEEXPRESS_WALK = "945666097";
TT_AD_NATIVEEXPRESS_WATER = "945666097"; TT_AD_NATIVEEXPRESS_WATER = "945666097";
TT_AD_NATIVEEXPRESS_MORNINGCLOCK = "945666097"; TT_AD_NATIVEEXPRESS_MORNINGCLOCK = "945666097";
TT_AD_NATIVEEXPRESS_EAT = "945666097"; TT_AD_NATIVEEXPRESS_EAT = "945666097";
// 激励视频 // 激励视频
TT_AD_VEDIO_DRINK = "945666029"; TT_AD_VEDIO_DRINK = "945666029";
TT_AD_VEDIO_MAIN = "945666029"; TT_AD_VEDIO_MAIN = "945666029";
TT_AD_VEDIO_ERASE = "945666029"; TT_AD_VEDIO_ERASE = "945666029";
TT_AD_VEDIO_TURNABLE = "945666029"; TT_AD_VEDIO_TURNABLE = "945666029";
TT_AD_VEDIO_MOREDIALOG = "945666029"; TT_AD_VEDIO_MOREDIALOG = "945666029";
// banner // banner
TT_AD_BANNER_MY="945666042"; TT_AD_BANNER_MY="945666042";
} else if (channel.contains(ChannelManager.CHANNEL_SOUGOU)) { } else {
// 信息流 // 自有默认
TT_AD_NATIVEEXPRESS_AWARD = "945666318"; // 信息流
TT_AD_NATIVEEXPRESS_WALK = "945666243"; TT_AD_NATIVEEXPRESS_AWARD = "945562047";
TT_AD_NATIVEEXPRESS_WATER = "945666243"; TT_AD_NATIVEEXPRESS_WALK = "945562480";
TT_AD_NATIVEEXPRESS_MORNINGCLOCK = "945666243"; TT_AD_NATIVEEXPRESS_WATER = "945562698";
TT_AD_NATIVEEXPRESS_EAT = "945666243"; TT_AD_NATIVEEXPRESS_MORNINGCLOCK = "945627921";
TT_AD_NATIVEEXPRESS_EAT = "945627922";
// 激励视频
TT_AD_VEDIO_DRINK = "945666260"; // 激励视频
TT_AD_VEDIO_MAIN = "945666260"; TT_AD_VEDIO_DRINK = "945562032";
TT_AD_VEDIO_ERASE = "945666260"; TT_AD_VEDIO_MAIN = "945562036";
TT_AD_VEDIO_TURNABLE = "945666260"; TT_AD_VEDIO_ERASE = "945562037";
TT_AD_VEDIO_MOREDIALOG = "945666260"; TT_AD_VEDIO_TURNABLE = "945562039";
TT_AD_VEDIO_MOREDIALOG = "945562040";
// banner
TT_AD_BANNER_MY="945666251"; // banner
} else if (channel.contains(ChannelManager.CHANNEL_QUTOUTIAO)) { TT_AD_BANNER_MY="945661050";
}
} else {
// 后台返回 用户注册渠道
// 信息流 // 信息流
TT_AD_NATIVEEXPRESS_AWARD = "945681112"; TT_AD_NATIVEEXPRESS_AWARD = idBean.getCsj().getCsjv1();
TT_AD_NATIVEEXPRESS_WALK = "945681145"; TT_AD_NATIVEEXPRESS_WALK = idBean.getCsj().getCsjv2();
TT_AD_NATIVEEXPRESS_WATER = "945681145"; TT_AD_NATIVEEXPRESS_WATER = idBean.getCsj().getCsjv2();
TT_AD_NATIVEEXPRESS_MORNINGCLOCK = "945681145"; TT_AD_NATIVEEXPRESS_MORNINGCLOCK = idBean.getCsj().getCsjv2();
TT_AD_NATIVEEXPRESS_EAT = "945681145"; TT_AD_NATIVEEXPRESS_EAT = idBean.getCsj().getCsjv2();
// 激励视频 // 激励视频
TT_AD_VEDIO_DRINK = "945681060"; TT_AD_VEDIO_DRINK = idBean.getCsj().getCsjv3();
TT_AD_VEDIO_MAIN = "945681060"; TT_AD_VEDIO_MAIN = idBean.getCsj().getCsjv3();
TT_AD_VEDIO_ERASE = "945681060"; TT_AD_VEDIO_ERASE = idBean.getCsj().getCsjv3();
TT_AD_VEDIO_TURNABLE = "945681060"; TT_AD_VEDIO_TURNABLE =idBean.getCsj().getCsjv3();
TT_AD_VEDIO_MOREDIALOG = "945681060"; TT_AD_VEDIO_MOREDIALOG = idBean.getCsj().getCsjv3();
// banner // banner
TT_AD_BANNER_MY="945681032"; TT_AD_BANNER_MY=idBean.getCsj().getCsjv4();
} }
} }
} }
...@@ -2,6 +2,8 @@ package com.mints.goodmoney.manager ...@@ -2,6 +2,8 @@ package com.mints.goodmoney.manager
import android.content.Context import android.content.Context
import com.mints.goodmoney.MintsApplication import com.mints.goodmoney.MintsApplication
import com.mints.goodmoney.mvp.model.AdcodeBean
import com.mints.goodmoney.mvp.model.UserMsgBean
import com.mints.library.utils.CommonUtils import com.mints.library.utils.CommonUtils
import com.qq.e.comm.managers.GDTADManager import com.qq.e.comm.managers.GDTADManager
...@@ -15,8 +17,6 @@ object YlhAdManager { ...@@ -15,8 +17,6 @@ object YlhAdManager {
const val YLH_AD_APPID = "1111046903" const val YLH_AD_APPID = "1111046903"
// 按渠道划分代码位
//============================== 版本升级、分享 START ==============================
/* splash-postid */ /* splash-postid */
var YLH_AD_SPLASH_POSTID = "7021944730189381" var YLH_AD_SPLASH_POSTID = "7021944730189381"
...@@ -35,7 +35,6 @@ object YlhAdManager { ...@@ -35,7 +35,6 @@ object YlhAdManager {
/* 插屏 */ /* 插屏 */
var YLH_AD_INTERSTITIALAD_LIEBAO = "1021648750986824" //猎豹 var YLH_AD_INTERSTITIALAD_LIEBAO = "1021648750986824" //猎豹
var YLH_AD_INTERSTITIALAD_JULEYUN = "4051047730890430" //聚乐云 var YLH_AD_INTERSTITIALAD_JULEYUN = "4051047730890430" //聚乐云
//============================== 版本升级、分享 END ==============================
/** /**
* 广告初始化 * 广告初始化
...@@ -45,42 +44,46 @@ object YlhAdManager { ...@@ -45,42 +44,46 @@ object YlhAdManager {
} }
/** /**
* 按包渠道更新代码位 * 更新代码位
*/ */
fun updataIdByChannel() { fun updataIdByChannel(idBean: AdcodeBean?) {
val channel = CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME") // 渠道对象为空
if (channel.contains(ChannelManager.CHANNEL_ZITOU) if (idBean == null) {
|| channel.contains(ChannelManager.CHANNEL_XIAOJUJI) val channel = CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME")
|| channel.contains(ChannelManager.CHANNEL_QIAOSHUI)) { if (channel.contains(ChannelManager.CHANNEL_TOUTIAO)) {
// 开屏 // 头条
YLH_AD_SPLASH_POSTID = "4031840694338658" // 开屏
YLH_AD_SPLASH_POSTID = "4031840694338658"
// 激励视频 // 激励视频
YLH_AD_VEDIO_DRINK_POSTID = "7091944614237712" YLH_AD_VEDIO_DRINK_POSTID = "7091944614237712"
YLH_AD_VEDIO_MAIN_POSTID = "7091944614237712" YLH_AD_VEDIO_MAIN_POSTID = "7091944614237712"
YLH_AD_VEDIO_ERASE_POSTID = "7091944614237712" YLH_AD_VEDIO_ERASE_POSTID = "7091944614237712"
YLH_AD_VEDIO_TURNABLE_POSTID = "7091944614237712" YLH_AD_VEDIO_TURNABLE_POSTID = "7091944614237712"
YLH_AD_VEDIO_MOREDIALOG_POSTID = "7091944614237712" YLH_AD_VEDIO_MOREDIALOG_POSTID = "7091944614237712"
} else if (channel.contains(ChannelManager.CHANNEL_SOUGOU)) { } else {
// 开屏 // 自有默认
YLH_AD_SPLASH_POSTID = "7081140694738761" // 开屏
YLH_AD_SPLASH_POSTID = "7021944730189381"
// 激励视频 // 激励视频
YLH_AD_VEDIO_DRINK_POSTID = "8081841664335704" YLH_AD_VEDIO_DRINK_POSTID = "2031043750380462"
YLH_AD_VEDIO_MAIN_POSTID = "8081841664335704" YLH_AD_VEDIO_MAIN_POSTID = "8081940760988417"
YLH_AD_VEDIO_ERASE_POSTID = "8081841664335704" YLH_AD_VEDIO_ERASE_POSTID = "9061142700180449"
YLH_AD_VEDIO_TURNABLE_POSTID = "8081841664335704" YLH_AD_VEDIO_TURNABLE_POSTID = "5051746700185561"
YLH_AD_VEDIO_MOREDIALOG_POSTID = "8081841664335704" YLH_AD_VEDIO_MOREDIALOG_POSTID = "9001346780383626"
} else if (channel.contains(ChannelManager.CHANNEL_QUTOUTIAO)) { }
} else {
// 后台返回 用户注册渠道
// 开屏 // 开屏
YLH_AD_SPLASH_POSTID = "8001943784580831" YLH_AD_SPLASH_POSTID = idBean.ylh.ylhv1
// 激励视频 // 激励视频
YLH_AD_VEDIO_DRINK_POSTID = "1001649784690072" YLH_AD_VEDIO_DRINK_POSTID = idBean.ylh.ylhv2
YLH_AD_VEDIO_MAIN_POSTID = "1001649784690072" YLH_AD_VEDIO_MAIN_POSTID = idBean.ylh.ylhv2
YLH_AD_VEDIO_ERASE_POSTID = "1001649784690072" YLH_AD_VEDIO_ERASE_POSTID = idBean.ylh.ylhv2
YLH_AD_VEDIO_TURNABLE_POSTID = "1001649784690072" YLH_AD_VEDIO_TURNABLE_POSTID = idBean.ylh.ylhv2
YLH_AD_VEDIO_MOREDIALOG_POSTID = "1001649784690072" YLH_AD_VEDIO_MOREDIALOG_POSTID = idBean.ylh.ylhv2
} }
} }
} }
\ No newline at end of file
package com.mints.goodmoney.mvp.model;
import java.io.Serializable;
/**
* 用户渠道对应代码位
*/
public class AdcodeBean implements Serializable {
private CsjBean csj;
private YlhBean ylh;
private String key;
public CsjBean getCsj() {
return csj;
}
public YlhBean getYlh() {
return ylh;
}
public String getKey() {
return key;
}
public class CsjBean implements Serializable {
private String csjv1;//奖励弹框信息流
private String csjv2;//喝水等 通用信息流
private String csjv3;//激励视频
private String csjv4;//Banner
public String getCsjv1() {
return csjv1;
}
public String getCsjv2() {
return csjv2;
}
public String getCsjv3() {
return csjv3;
}
public String getCsjv4() {
return csjv4;
}
}
public class YlhBean implements Serializable {
private String ylhv1;//开屏
private String ylhv2;//激励
public String getYlhv1() {
return ylhv1;
}
public String getYlhv2() {
return ylhv2;
}
}
}
package com.mints.goodmoney.mvp.model;
import java.io.Serializable;
public class UserRiskAppsBean implements Serializable {
private String userRiskAppName;
private String userRiskAppPkg;
public String getUserRiskAppName() {
return userRiskAppName;
}
public String getUserRiskAppPkg() {
return userRiskAppPkg;
}
}
...@@ -9,9 +9,10 @@ public class UserTaskMsgBean implements Serializable { ...@@ -9,9 +9,10 @@ public class UserTaskMsgBean implements Serializable {
private UserMsgBean userMsg; private UserMsgBean userMsg;
private VedioRulesBean vedioRules; private VedioRulesBean vedioRules;
private BlessingBigMsgBean blessingBigMsg; private BlessingBigMsgBean blessingBigMsg;
private UserRiskAppsBean userRiskApps;
private AdcodeBean adcode;
private String ip; private String ip;
private String userRiskApp;
public BlessingBigMsgBean getBlessingBigMsgBean() { public BlessingBigMsgBean getBlessingBigMsgBean() {
return blessingBigMsg; return blessingBigMsg;
...@@ -76,7 +77,11 @@ public class UserTaskMsgBean implements Serializable { ...@@ -76,7 +77,11 @@ public class UserTaskMsgBean implements Serializable {
return ip; return ip;
} }
public String getUserRiskApp() { public UserRiskAppsBean getUserRiskApps() {
return userRiskApp; return userRiskApps;
}
public AdcodeBean getAdcode() {
return adcode;
} }
} }
...@@ -2,8 +2,10 @@ package com.mints.goodmoney.mvp.presenters; ...@@ -2,8 +2,10 @@ package com.mints.goodmoney.mvp.presenters;
import android.text.TextUtils; import android.text.TextUtils;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.mints.goodmoney.MintsApplication; import com.mints.goodmoney.MintsApplication;
import com.mints.goodmoney.common.Constant;
import com.mints.goodmoney.common.DeviceInfo; import com.mints.goodmoney.common.DeviceInfo;
import com.mints.goodmoney.manager.AppHttpManager; import com.mints.goodmoney.manager.AppHttpManager;
import com.mints.goodmoney.manager.ShumeiManager; import com.mints.goodmoney.manager.ShumeiManager;
...@@ -49,7 +51,12 @@ public class AwardPresenter extends BasePresenter<AwardView> { ...@@ -49,7 +51,12 @@ public class AwardPresenter extends BasePresenter<AwardView> {
case 200://成功 case 200://成功
JsonObject data = baseResponse.getData(); JsonObject data = baseResponse.getData();
if (data != null) { if (data != null) {
view.getUserTaskMsgSuc(data.get("coin").getAsInt()); boolean riskFlag = false;
JsonElement riskinfoRateElement = data.get("riskinfoRate");
if (riskinfoRateElement != null) {
riskFlag = data.get("riskinfoRate").getAsBoolean();
}
view.getUserTaskMsgSuc(data.get("coin").getAsInt(),riskFlag );
} }
break; break;
default: default:
...@@ -145,4 +152,55 @@ public class AwardPresenter extends BasePresenter<AwardView> { ...@@ -145,4 +152,55 @@ public class AwardPresenter extends BasePresenter<AwardView> {
} }
}); });
} }
public void riskinfo() {
DeviceInfo deviceInfo = DeviceInfo.Companion.getInstance();
RxjavaUtil.executeRxTask(new CommonRxTask<String>("") {
@Override
public void doInIOThread() {
setT(deviceInfo.getAppInfoMap());
}
@Override
public void doInUIThread() {
HashMap<String, Object> vo = new HashMap<>();
vo.put("androidid", deviceInfo.getAndroidId(null));
vo.put("os", "android");
vo.put("model", deviceInfo.getBrand() + " " + deviceInfo.getMobileModel());
vo.put("uuid", new DeviceUuidFactory().getDeviceUuid());
vo.put("osversion", deviceInfo.getOSVersion());
vo.put("appversion", deviceInfo.getVersionName());
vo.put("applist", getT());
vo.put("eventid", Constant.RISK_EVENT_ID_TASK);
vo.put("ischarge", deviceInfo.isCharging());
vo.put("isusbdebug", deviceInfo.getGetUsbStatus());
vo.put("iswifi", deviceInfo.isWifi());
vo.put("isroot", deviceInfo.isRoot());
vo.put("isvpn", deviceInfo.isVPN());
vo.put("memory", deviceInfo.getTotalMemory() + "+" + deviceInfo.getTotalStorage());
vo.put("operator", deviceInfo.getOperator());
vo.put("idfa", "");
vo.put("imei", deviceInfo.getIMEI());
vo.put("oaid", MintsApplication.OAID);
AppHttpManager.getInstance(loanApplication)
.call(loanService.riskinfo(vo),
new BaseSubscriber<BaseResponse<Object>>() {
@Override
public void onCompleted() {
if (isLinkView()) return;
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(BaseResponse<Object> baseResponse) {
}
});
}
});
}
} }
...@@ -6,6 +6,7 @@ import android.view.animation.AccelerateDecelerateInterpolator; ...@@ -6,6 +6,7 @@ import android.view.animation.AccelerateDecelerateInterpolator;
import com.daimajia.androidanimations.library.Techniques; import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo; import com.daimajia.androidanimations.library.YoYo;
import com.mints.goodmoney.MintsApplication; import com.mints.goodmoney.MintsApplication;
import com.mints.goodmoney.common.Constant;
import com.mints.goodmoney.common.DeviceInfo; import com.mints.goodmoney.common.DeviceInfo;
import com.mints.goodmoney.manager.AppHttpManager; import com.mints.goodmoney.manager.AppHttpManager;
import com.mints.goodmoney.manager.ShumeiManager; import com.mints.goodmoney.manager.ShumeiManager;
...@@ -152,6 +153,9 @@ public class DrawcashPresenter extends BasePresenter<DrawcashView> { ...@@ -152,6 +153,9 @@ public class DrawcashPresenter extends BasePresenter<DrawcashView> {
if (!TextUtils.isEmpty(MintsApplication.OAID)) { if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo.put("oaid", MintsApplication.OAID); vo.put("oaid", MintsApplication.OAID);
} }
riskinfo(deviceInfo,getT());
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo), .call(loanService.saveTerminalInfo(vo),
new BaseSubscriber<BaseResponse<UserBean>>() { new BaseSubscriber<BaseResponse<UserBean>>() {
...@@ -227,4 +231,47 @@ public class DrawcashPresenter extends BasePresenter<DrawcashView> { ...@@ -227,4 +231,47 @@ public class DrawcashPresenter extends BasePresenter<DrawcashView> {
} }
}); });
} }
/**
* 风控信息
*/
private void riskinfo(DeviceInfo deviceInfo, String appPkgList) {
HashMap<String, Object> vo = new HashMap<>();
vo.put("androidid", deviceInfo.getAndroidId(null));
vo.put("os", "android");
vo.put("model", deviceInfo.getBrand() + " " + deviceInfo.getMobileModel());
vo.put("uuid", new DeviceUuidFactory().getDeviceUuid());
vo.put("osversion", deviceInfo.getOSVersion());
vo.put("appversion", deviceInfo.getVersionName());
vo.put("applist", appPkgList);
vo.put("eventid", Constant.RISK_EVENT_ID_DRAWCASH);
vo.put("ischarge", deviceInfo.isCharging());
vo.put("isusbdebug", deviceInfo.getGetUsbStatus());
vo.put("iswifi", deviceInfo.isWifi());
vo.put("isroot", deviceInfo.isRoot());
vo.put("isvpn", deviceInfo.isVPN());
vo.put("memory", deviceInfo.getTotalMemory() + "+" + deviceInfo.getTotalStorage());
vo.put("operator", deviceInfo.getOperator());
vo.put("idfa", "");
vo.put("imei", deviceInfo.getIMEI());
vo.put("oaid", MintsApplication.OAID);
AppHttpManager.getInstance(loanApplication)
.call(loanService.riskinfo(vo),
new BaseSubscriber<BaseResponse<Object>>() {
@Override
public void onCompleted() {
if (isLinkView()) return;
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(BaseResponse<Object> baseResponse) {
}
});
}
} }
package com.mints.goodmoney.mvp.presenters package com.mints.goodmoney.mvp.presenters
import android.content.pm.ApplicationInfo
import android.text.TextUtils import android.text.TextUtils
import com.mints.goodmoney.MintsApplication import com.mints.goodmoney.MintsApplication
import com.mints.goodmoney.common.Constant import com.mints.goodmoney.common.Constant
...@@ -17,8 +16,6 @@ import com.mints.goodmoney.utils.rxutil.CommonRxTask ...@@ -17,8 +16,6 @@ import com.mints.goodmoney.utils.rxutil.CommonRxTask
import com.mints.goodmoney.utils.rxutil.RxjavaUtil import com.mints.goodmoney.utils.rxutil.RxjavaUtil
import com.mints.library.net.neterror.BaseSubscriber import com.mints.library.net.neterror.BaseSubscriber
import com.mints.library.net.neterror.Throwable import com.mints.library.net.neterror.Throwable
import com.mints.library.utils.json.JsonUtil
import net.grandcentrix.tray.AppPreferences
import java.util.* import java.util.*
class LoginPresenter : BasePresenter<LoginView>() { class LoginPresenter : BasePresenter<LoginView>() {
...@@ -254,6 +251,8 @@ class LoginPresenter : BasePresenter<LoginView>() { ...@@ -254,6 +251,8 @@ class LoginPresenter : BasePresenter<LoginView>() {
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId() vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["appPkgList"] = t.toString() vo["appPkgList"] = t.toString()
riskinfo(deviceInfo, t.toString())
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo), .call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() { object : BaseSubscriber<BaseResponse<Any>>() {
...@@ -281,4 +280,43 @@ class LoginPresenter : BasePresenter<LoginView>() { ...@@ -281,4 +280,43 @@ class LoginPresenter : BasePresenter<LoginView>() {
} }
/**
* 风控信息
*/
fun riskinfo(deviceInfo: DeviceInfo, appPkgList: String) {
val vo = HashMap<String, Any>()
vo["androidid"] = deviceInfo.getAndroidId(null)
vo["os"] = "android"
vo["model"] = deviceInfo.brand + " " + deviceInfo.mobileModel
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["applist"] = appPkgList
vo["eventid"] = Constant.RISK_EVENT_ID_LOGIN
vo["ischarge"] = deviceInfo.isCharging
vo["isusbdebug"] = deviceInfo.getUsbStatus
vo["iswifi"] = deviceInfo.isWifi
vo["isroot"] = deviceInfo.isRoot
vo["isvpn"] = deviceInfo.isVPN
vo["memory"] = deviceInfo.totalMemory + "+" + deviceInfo.totalStorage
vo["operator"] = deviceInfo.operator
vo["idfa"] = ""
vo["imei"] = deviceInfo.iMEI
vo["oaid"] = MintsApplication.OAID
AppHttpManager.getInstance(loanApplication)
.call(loanService.riskinfo(vo),
object : BaseSubscriber<BaseResponse<Object>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
}
override fun onNext(baseResponse: BaseResponse<Object>) {
}
})
}
} }
\ No newline at end of file
...@@ -6,5 +6,5 @@ interface AwardView : BaseView { ...@@ -6,5 +6,5 @@ interface AwardView : BaseView {
/** /**
* 获取用户配置信息成功 * 获取用户配置信息成功
*/ */
fun getUserTaskMsgSuc(coin: Int) fun getUserTaskMsgSuc(coin: Int,riskFlag:Boolean)
} }
\ No newline at end of file
...@@ -444,6 +444,14 @@ public interface LoanService { ...@@ -444,6 +444,14 @@ public interface LoanService {
@POST("api/addCashoutVedio") @POST("api/addCashoutVedio")
Observable<BaseResponse<Object>> drawcashVideo(); Observable<BaseResponse<Object>> drawcashVideo();
/**
* 风控信息
*
* @return
*/
@POST("api/riskinfo/save")
Observable<BaseResponse<Object>> riskinfo(@Body Map<String, Object> vo);
/** /**
* 默认http工厂 * 默认http工厂
*/ */
......
...@@ -49,6 +49,7 @@ public class OkHttpInterceptor implements Interceptor { ...@@ -49,6 +49,7 @@ public class OkHttpInterceptor implements Interceptor {
// 穿山甲分包渠道 // 穿山甲分包渠道
String ttChannel = HumeSDK.getChannel(MintsApplication.getContext()); String ttChannel = HumeSDK.getChannel(MintsApplication.getContext());
if (!TextUtils.isEmpty(ttChannel)) { if (!TextUtils.isEmpty(ttChannel)) {
// 此处方式不能修改,已和后端约定
channel = channel + "_" + ttChannel; channel = channel + "_" + ttChannel;
} }
} catch (Exception e) { } catch (Exception e) {
......
package com.mints.goodmoney.ui.activitys package com.mints.goodmoney.ui.activitys
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils
import android.view.View import android.view.View
import android.view.View.OnLongClickListener import android.view.View.OnLongClickListener
import com.bytedance.hume.readapk.HumeSDK import com.bytedance.hume.readapk.HumeSDK
import com.mints.goodmoney.MintsApplication import com.mints.goodmoney.MintsApplication
import com.mints.goodmoney.R import com.mints.goodmoney.R
import com.mints.goodmoney.common.AppConfig
import com.mints.goodmoney.common.Constant import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.ui.activitys.base.BaseActivity import com.mints.goodmoney.ui.activitys.base.BaseActivity
import com.mints.goodmoney.utils.ToastUtil import com.mints.goodmoney.utils.ToastUtil
...@@ -33,8 +35,9 @@ class AboutusActivity : BaseActivity(), View.OnClickListener { ...@@ -33,8 +35,9 @@ class AboutusActivity : BaseActivity(), View.OnClickListener {
ivAboutasIcon.setOnLongClickListener(OnLongClickListener { ivAboutasIcon.setOnLongClickListener(OnLongClickListener {
ToastUtil.showLong(MintsApplication.getContext(), "自有渠道:" + CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME") + ToastUtil.showLong(MintsApplication.getContext(), "自有渠道:" + CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME") +
"\n 头条渠道:" + HumeSDK.getChannel(context) + "\n\n 广告:" + AppConfig.user_channel_ad +
"\n 头条version:" + HumeSDK.getVersion()) "\n\n 头条渠道:" + HumeSDK.getChannel(context) +
"\n\n 头条version:" + HumeSDK.getVersion())
true true
}) })
......
...@@ -459,7 +459,7 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener { ...@@ -459,7 +459,7 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener {
} }
override fun getUserTaskMsgSuc(coin: Int) { override fun getUserTaskMsgSuc(coin: Int, riskFlag: Boolean) {
val sumCoin = coin.toString() val sumCoin = coin.toString()
val allcoinBig = BigDecimal(sumCoin) val allcoinBig = BigDecimal(sumCoin)
val rateBig = BigDecimal("10000") val rateBig = BigDecimal("10000")
...@@ -474,6 +474,11 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener { ...@@ -474,6 +474,11 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener {
.append("元").setFontSize(40).setForegroundColor(resources.getColor(R.color.color_333)) .append("元").setFontSize(40).setForegroundColor(resources.getColor(R.color.color_333))
.create() .create()
) )
// 上传风控信息
if (riskFlag) {
awardPresenter.riskinfo()
}
} }
/** /**
......
...@@ -7,6 +7,7 @@ import com.mints.goodmoney.common.Constant ...@@ -7,6 +7,7 @@ import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.ui.activitys.base.BaseActivity import com.mints.goodmoney.ui.activitys.base.BaseActivity
import com.mints.goodmoney.ui.fragment.MyZhangyueFragment import com.mints.goodmoney.ui.fragment.MyZhangyueFragment
import com.mints.goodmoney.ui.fragment.RsNewsFragment import com.mints.goodmoney.ui.fragment.RsNewsFragment
import com.mints.goodmoney.ui.fragment.ZhangyueFragment
import kotlinx.android.synthetic.main.header_layout.* import kotlinx.android.synthetic.main.header_layout.*
/** /**
...@@ -56,7 +57,7 @@ class WrapperActivity : BaseActivity(), View.OnClickListener { ...@@ -56,7 +57,7 @@ class WrapperActivity : BaseActivity(), View.OnClickListener {
} }
Constant.WRAPPER_TYPE_BOOK -> { Constant.WRAPPER_TYPE_BOOK -> {
tv_title.text = "书城" tv_title.text = "书城"
val zhangyueFragment = MyZhangyueFragment() val zhangyueFragment = ZhangyueFragment()
if (!zhangyueFragment.isAdded()) { if (!zhangyueFragment.isAdded()) {
// 提交事务 // 提交事务
supportFragmentManager.beginTransaction() supportFragmentManager.beginTransaction()
......
package com.mints.goodmoney.ui.fragment //package com.mints.goodmoney.ui.fragment
//
import android.annotation.SuppressLint //import android.annotation.SuppressLint
import android.content.Intent //import android.content.Intent
import android.content.pm.ApplicationInfo //import android.content.pm.ApplicationInfo
import android.net.Uri //import android.net.Uri
import android.os.Build //import android.os.Build
import android.view.View //import android.view.View
import android.view.ViewGroup //import android.view.ViewGroup
import android.webkit.WebSettings //import android.webkit.WebSettings
import android.webkit.WebViewClient //import android.webkit.WebViewClient
import com.mints.goodmoney.R //import com.mints.goodmoney.R
import com.mints.goodmoney.manager.UserManager //import com.mints.goodmoney.manager.UserManager
import com.mints.goodmoney.ui.fragment.base.LazyLoadBaseFragment //import com.mints.goodmoney.ui.fragment.base.LazyLoadBaseFragment
import com.mints.goodmoney.utils.LogUtil //import com.mints.goodmoney.utils.LogUtil
import com.mints.goodmoney.utils.MD5 //import com.mints.goodmoney.utils.MD5
import com.mints.goodmoney.utils.URIEncoder //import com.mints.goodmoney.utils.URIEncoder
import kotlinx.android.synthetic.main.fragment_main_dh.* //import kotlinx.android.synthetic.main.fragment_main_dh.*
//
/** ///**
* 描述:电魂游戏 // * 描述:电魂游戏
* 作者:孟崔广 // * 作者:孟崔广
* 时间:2020/11/17 13:48 // * 时间:2020/11/17 13:48
*/ // */
class DhGameFragment : LazyLoadBaseFragment(), View.OnClickListener { //class DhGameFragment : LazyLoadBaseFragment(), View.OnClickListener {
//
companion object { // companion object {
const val CHANNEL = "14533" // const val CHANNEL = "14533"
const val KEY = "4932d9037fd94f6ba24fa09605203cd6" // const val KEY = "4932d9037fd94f6ba24fa09605203cd6"
const val AUTH_URL = "http://www.shandw.com/auth/" // const val AUTH_URL = "http://www.shandw.com/auth/"
} // }
//
private val TAG = DhGameFragment::class.java.simpleName // private val TAG = DhGameFragment::class.java.simpleName
//
override fun getContentViewLayoutID() = R.layout.fragment_main_dh // override fun getContentViewLayoutID() = R.layout.fragment_main_dh
//
override fun initViewsAndEvents() { // override fun initViewsAndEvents() {
} // }
//
override fun onFragmentFirstVisible() { // override fun onFragmentFirstVisible() {
loadH5Game() // loadH5Game()
initListener() // initListener()
} // }
//
override fun onFragmentResume() { // override fun onFragmentResume() {
super.onFragmentResume() // super.onFragmentResume()
// LogUtil.d(TAG, "onFragmentResume") //// LogUtil.d(TAG, "onFragmentResume")
} // }
//
override fun onFragmentPause() { // override fun onFragmentPause() {
// LogUtil.d(TAG, "onFragmentPause") //// LogUtil.d(TAG, "onFragmentPause")
if (UserManager.getInstance().userIsLogin()) { // if (UserManager.getInstance().userIsLogin()) {
loadH5Game() // loadH5Game()
} // }
} // }
//
override fun onDestroy() { // override fun onDestroy() {
super.onDestroy() // super.onDestroy()
//
dh_webview?.let { // dh_webview?.let {
it.destroyDrawingCache() // it.destroyDrawingCache()
val parent = it.getParent() as ViewGroup // val parent = it.getParent() as ViewGroup
parent.removeView(it) // parent.removeView(it)
it.removeAllViews() // it.removeAllViews()
it.destroy() // it.destroy()
} // }
//
} // }
//
override fun onClick(v: View) { // override fun onClick(v: View) {
when (v.id) { // when (v.id) {
R.id.ivDhBack -> { // R.id.ivDhBack -> {
dh_webview.goBack() // dh_webview.goBack()
} // }
R.id.tvDhRefresh -> { // R.id.tvDhRefresh -> {
loadH5Game() // loadH5Game()
} // }
} // }
} // }
//
/** // /**
* 加载H5Game // * 加载H5Game
*/ // */
@SuppressLint("SetJavaScriptEnabled") // @SuppressLint("SetJavaScriptEnabled")
private fun loadH5Game() { // private fun loadH5Game() {
dh_webview?.let { // dh_webview?.let {
val loadUrl = getLoadUrl() // val loadUrl = getLoadUrl()
LogUtil.d(TAG, "url-->${loadUrl}") // LogUtil.d(TAG, "url-->${loadUrl}")
val settings = it.settings // val settings = it.settings
// 本地 DOM 存储(解决加载某些网页出现白板现象) // // 本地 DOM 存储(解决加载某些网页出现白板现象)
settings.domStorageEnabled = true // settings.domStorageEnabled = true
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 解决 Android 5.0 上 WebView 默认不允许加载 Http 与 Https 混合内容 // // 解决 Android 5.0 上 WebView 默认不允许加载 Http 与 Https 混合内容
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW // settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
} // }
settings.javaScriptEnabled = true // settings.javaScriptEnabled = true
settings.javaScriptCanOpenWindowsAutomatically = true // settings.javaScriptCanOpenWindowsAutomatically = true
it.setWebViewClient(object : WebViewClient() { // it.setWebViewClient(object : WebViewClient() {
override fun shouldOverrideUrlLoading( // override fun shouldOverrideUrlLoading(
view: android.webkit.WebView, // view: android.webkit.WebView,
url: String // url: String
): Boolean { // ): Boolean {
if (url.startsWith("weixin://wap/pay?") || url.startsWith("alipay")) { // if (url.startsWith("weixin://wap/pay?") || url.startsWith("alipay")) {
val hasApp: Boolean // val hasApp: Boolean
hasApp = if (url.startsWith("weixin://wap/pay?")) { // hasApp = if (url.startsWith("weixin://wap/pay?")) {
isAppExist("com.tencent.mm") // isAppExist("com.tencent.mm")
} else { // } else {
(isAppExist("com.eg.android.AlipayGphone") || isAppExist("com.alipay.android.app")) // (isAppExist("com.eg.android.AlipayGphone") || isAppExist("com.alipay.android.app"))
} // }
if (hasApp) { // if (hasApp) {
val intent = Intent() // val intent = Intent()
intent.action = Intent.ACTION_VIEW // intent.action = Intent.ACTION_VIEW
intent.data = Uri.parse(url) // intent.data = Uri.parse(url)
activity?.startActivity(intent) // activity?.startActivity(intent)
} else { // } else {
showToast("客官,请先安装支付App哦~") // showToast("客官,请先安装支付App哦~")
} // }
return true // return true
} // }
//
if (url.startsWith("https")) { // if (url.startsWith("https")) {
val map = HashMap<String, String>() // val map = HashMap<String, String>()
map["Referer"] = "http://www.shandw.com" // map["Referer"] = "http://www.shandw.com"
it.loadUrl(url, map) // it.loadUrl(url, map)
} // }
return super.shouldOverrideUrlLoading(view, url) // return super.shouldOverrideUrlLoading(view, url)
} // }
}) // })
it.loadUrl(loadUrl) // it.loadUrl(loadUrl)
} // }
} // }
//
/** // /**
* 获取拼接url // * 获取拼接url
*/ // */
fun getLoadUrl(): String { // fun getLoadUrl(): String {
val currentTimeMillis = System.currentTimeMillis() / 1000 // val currentTimeMillis = System.currentTimeMillis() / 1000
val loadUrl = "${AUTH_URL}?" + // val loadUrl = "${AUTH_URL}?" +
"channel=${CHANNEL}&" + // "channel=${CHANNEL}&" +
"openid=${URIEncoder.encodeURIComponent(UserManager.getInstance().userID)}&" + // "openid=${URIEncoder.encodeURIComponent(UserManager.getInstance().userID)}&" +
"time=${currentTimeMillis}&" + // "time=${currentTimeMillis}&" +
"nick=${URIEncoder.encodeURIComponent(UserManager.getInstance().userID)}&" + // "nick=${URIEncoder.encodeURIComponent(UserManager.getInstance().userID)}&" +
"avatar=${URIEncoder.encodeURIComponent("https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_goodmoney/img/ic_my.png")}&" + // "avatar=${URIEncoder.encodeURIComponent("https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_goodmoney/img/ic_my.png")}&" +
"sex=${0}&" + // "sex=${0}&" +
"phone=${UserManager.getInstance().mobile}&" + // "phone=${UserManager.getInstance().mobile}&" +
"sdw_simple=${2}&" + // "sdw_simple=${2}&" +
"sign=${getSignStr(currentTimeMillis)}" // "sign=${getSignStr(currentTimeMillis)}"
return loadUrl // return loadUrl
} // }
//
/** // /**
* 获取签名 // * 获取签名
*/ // */
fun getSignStr(currentTimeMillis: Long): String { // fun getSignStr(currentTimeMillis: Long): String {
val signStr = "channel=${CHANNEL}&" + // val signStr = "channel=${CHANNEL}&" +
"openid=${URIEncoder.encodeURIComponent(UserManager.getInstance().userID)}&" + // "openid=${URIEncoder.encodeURIComponent(UserManager.getInstance().userID)}&" +
"time=${currentTimeMillis}&" + // "time=${currentTimeMillis}&" +
"nick=${UserManager.getInstance().userID}&" + // "nick=${UserManager.getInstance().userID}&" +
"avatar=https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_goodmoney/img/ic_my.png&" + // "avatar=https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_goodmoney/img/ic_my.png&" +
"sex=${0}&" + // "sex=${0}&" +
"phone=${UserManager.getInstance().mobile}${KEY}" // "phone=${UserManager.getInstance().mobile}${KEY}"
return MD5.GetMD5Code(signStr).toLowerCase() // return MD5.GetMD5Code(signStr).toLowerCase()
} // }
//
fun isAppExist(pkgName: String): Boolean { // fun isAppExist(pkgName: String): Boolean {
var info: ApplicationInfo? = null // var info: ApplicationInfo? = null
try { // try {
info = context?.getPackageManager()!!.getApplicationInfo(pkgName, 0) // info = context?.getPackageManager()!!.getApplicationInfo(pkgName, 0)
context!!.startActivity(context!!.packageManager.getLaunchIntentForPackage(pkgName)) // context!!.startActivity(context!!.packageManager.getLaunchIntentForPackage(pkgName))
} catch (e: Exception) { // } catch (e: Exception) {
} // }
return if (info != null) true else false // return if (info != null) true else false
} // }
//
private fun initListener() { // private fun initListener() {
ivDhBack.setOnClickListener(this) // ivDhBack.setOnClickListener(this)
tvDhRefresh.setOnClickListener(this) // tvDhRefresh.setOnClickListener(this)
} // }
} //}
\ No newline at end of file \ No newline at end of file
...@@ -17,8 +17,7 @@ import com.mints.goodmoney.ui.fragment.base.BaseFragment ...@@ -17,8 +17,7 @@ import com.mints.goodmoney.ui.fragment.base.BaseFragment
import com.yilan.sdk.player.ylplayer.YLPlayerConfig import com.yilan.sdk.player.ylplayer.YLPlayerConfig
import com.yilan.sdk.player.ylplayer.callback.OnPlayerCallBack import com.yilan.sdk.player.ylplayer.callback.OnPlayerCallBack
import com.yilan.sdk.ui.category.ChannelFragment import com.yilan.sdk.ui.category.ChannelFragment
import kotlinx.android.synthetic.main.fragment_horiz_channel.cdvvYilanTime import kotlinx.android.synthetic.main.layout_red_box.*
import kotlinx.android.synthetic.main.fragment_horiz_channel.vs_tips
import net.grandcentrix.tray.AppPreferences import net.grandcentrix.tray.AppPreferences
/** /**
...@@ -165,9 +164,8 @@ class HorizChannelFragment : BaseFragment(), HorizChannelView, View.OnClickListe ...@@ -165,9 +164,8 @@ class HorizChannelFragment : BaseFragment(), HorizChannelView, View.OnClickListe
cdvvYilanTime.setCountDownVedioListener { cdvvYilanTime.setCountDownVedioListener {
if (isFirstWatchVideo) { if (isFirstWatchVideo) {
// 第一次观看完视频提醒用户 // 第一次观看完视频提醒用户
val vs = vs_tips.inflate()
Handler(Looper.getMainLooper()).postDelayed({ Handler(Looper.getMainLooper()).postDelayed({
vs.visibility = View.GONE vs_tips.visibility = View.GONE
}, 3000) }, 3000)
isFirstWatchVideo = false isFirstWatchVideo = false
} }
......
...@@ -15,10 +15,7 @@ import com.mints.goodmoney.R ...@@ -15,10 +15,7 @@ import com.mints.goodmoney.R
import com.mints.goodmoney.ad.video.VedioAdingManager import com.mints.goodmoney.ad.video.VedioAdingManager
import com.mints.goodmoney.common.AppConfig import com.mints.goodmoney.common.AppConfig
import com.mints.goodmoney.common.Constant import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.manager.ShumeiManager import com.mints.goodmoney.manager.*
import com.mints.goodmoney.manager.TTPreLoadExpressManager
import com.mints.goodmoney.manager.UserManager
import com.mints.goodmoney.manager.WnManager
import com.mints.goodmoney.mvp.model.MainVedioMsgBean import com.mints.goodmoney.mvp.model.MainVedioMsgBean
import com.mints.goodmoney.mvp.model.UserTaskMsgBean import com.mints.goodmoney.mvp.model.UserTaskMsgBean
import com.mints.goodmoney.mvp.presenters.HomePresenter import com.mints.goodmoney.mvp.presenters.HomePresenter
...@@ -198,8 +195,11 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener { ...@@ -198,8 +195,11 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
// 保存Ip,用于穿山甲回调校验 // 保存Ip,用于穿山甲回调校验
ps.put(Constant.CSJ_VEDIO_APPIP, data.ip) ps.put(Constant.CSJ_VEDIO_APPIP, data.ip)
// AppConfig.app_black = data.userRiskApp AppConfig.app_black_name = data.userRiskApps.userRiskAppName
AppConfig.app_black_pkg = data.userRiskApps.userRiskAppPkg
AppConfig.flVideoFlag = data.vedioRules.isFlVideoFlag AppConfig.flVideoFlag = data.vedioRules.isFlVideoFlag
AppConfig.user_channel_ad=data.adcode.key
ChannelManager.updataCodeIdForRegisterChannel(data.adcode)
// 新人福利 放到个人中心展示 防止首页红包转动异常 // 新人福利 放到个人中心展示 防止首页红包转动异常
......
...@@ -54,7 +54,7 @@ class MoneyFragment : BaseFragment(), XTabLayout.OnTabSelectedListener { ...@@ -54,7 +54,7 @@ class MoneyFragment : BaseFragment(), XTabLayout.OnTabSelectedListener {
mainFragment = MainFragment() mainFragment = MainFragment()
liebaoGameFragment = LiebaoGameFragment() liebaoGameFragment = LiebaoGameFragment()
fragments.add(mainFragment!!) fragments.add(mainFragment!!)
fragments.add(ZhangyueFragment()) fragments.add(MyZhangyueFragment())
fragments.add(RsNewsFragment()) fragments.add(RsNewsFragment())
fragments.add(liebaoGameFragment!!) fragments.add(liebaoGameFragment!!)
...@@ -83,14 +83,6 @@ class MoneyFragment : BaseFragment(), XTabLayout.OnTabSelectedListener { ...@@ -83,14 +83,6 @@ class MoneyFragment : BaseFragment(), XTabLayout.OnTabSelectedListener {
} }
override fun onTabSelected(tab: XTabLayout.Tab) { override fun onTabSelected(tab: XTabLayout.Tab) {
// if (tab.position == 3) {
// if (!UserManager.getInstance().userIsLogin()) {
// readyGo(WxLoginActivity::class.java)
// vpFragmentMoney.currentItem = if (curPosition == 3) 0 else curPosition
// return
// }
// }
curPosition = tab.position curPosition = tab.position
} }
} }
\ No newline at end of file
...@@ -18,6 +18,7 @@ import com.mints.goodmoney.ad.banner.BannerManager ...@@ -18,6 +18,7 @@ import com.mints.goodmoney.ad.banner.BannerManager
import com.mints.goodmoney.ad.video.VedioAdingManager import com.mints.goodmoney.ad.video.VedioAdingManager
import com.mints.goodmoney.common.AppConfig import com.mints.goodmoney.common.AppConfig
import com.mints.goodmoney.common.Constant import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.common.DeviceInfo
import com.mints.goodmoney.manager.* import com.mints.goodmoney.manager.*
import com.mints.goodmoney.mvp.model.* import com.mints.goodmoney.mvp.model.*
import com.mints.goodmoney.mvp.presenters.MyPresenter import com.mints.goodmoney.mvp.presenters.MyPresenter
...@@ -115,8 +116,9 @@ class MyFragment : BaseFragment(), MyView, OnItemChildClickListener, OnRefreshLi ...@@ -115,8 +116,9 @@ class MyFragment : BaseFragment(), MyView, OnItemChildClickListener, OnRefreshLi
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (AppConfig.fragmentClickFlag == Constant.FRAGMENT_CLICK_MY) { if (AppConfig.fragmentClickFlag == Constant.FRAGMENT_CLICK_MY) {
// val instance = DeviceInfo.instance
// LogUtil.d(TAG,"否充电中:${instance.isCharging} 否处于USB调试模式:${instance.getUsbStatus} 是否处于wifi条件:${instance.getWifiConnected} 是否root:${instance.isRoot} ")
showToast(Utils.isStartAccessibilityService().toString())
if (!TextUtils.isEmpty(userManager.userID)) { if (!TextUtils.isEmpty(userManager.userID)) {
myPresenter.getAutoUserHallBaseMsg() myPresenter.getAutoUserHallBaseMsg()
...@@ -216,8 +218,11 @@ class MyFragment : BaseFragment(), MyView, OnItemChildClickListener, OnRefreshLi ...@@ -216,8 +218,11 @@ class MyFragment : BaseFragment(), MyView, OnItemChildClickListener, OnRefreshLi
// 更新权重 // 更新权重
initAdWeight(data) initAdWeight(data)
// AppConfig.app_black = data.userRiskApp AppConfig.app_black_name = data.userRiskApps.userRiskAppName
AppConfig.app_black_pkg = data.userRiskApps.userRiskAppPkg
AppConfig.flVideoFlag = data.vedioRules.isFlVideoFlag AppConfig.flVideoFlag = data.vedioRules.isFlVideoFlag
AppConfig.user_channel_ad=data.adcode.key
ChannelManager.updataCodeIdForRegisterChannel(data.adcode)
// 新人福利 // 新人福利
...@@ -713,6 +718,14 @@ class MyFragment : BaseFragment(), MyView, OnItemChildClickListener, OnRefreshLi ...@@ -713,6 +718,14 @@ class MyFragment : BaseFragment(), MyView, OnItemChildClickListener, OnRefreshLi
TTPreLoadCarrierExpressManager.getInstance().loadTtFrameLayout(TtCsjAdManager.TT_AD_NATIVEEXPRESS_EAT) TTPreLoadCarrierExpressManager.getInstance().loadTtFrameLayout(TtCsjAdManager.TT_AD_NATIVEEXPRESS_EAT)
readyGo(FoodSubsidyActivity::class.java) readyGo(FoodSubsidyActivity::class.java)
} }
Constant.HOT_ACTIVITY_DHGAME -> {
if (!UserManager.getInstance().userIsLogin()) {
readyGo(WxLoginActivity::class.java)
return
}
readyGo(DhGameActivity::class.java)
}
else -> { else -> {
if (!TextUtils.isEmpty(hotBean.url) && !TextUtils.isEmpty(hotBean.title)) { if (!TextUtils.isEmpty(hotBean.url) && !TextUtils.isEmpty(hotBean.title)) {
val bundle = Bundle() val bundle = Bundle()
......
package com.mints.goodmoney.ui.fragment
import android.os.Build
import android.view.View
import android.webkit.WebSettings
import com.mints.goodmoney.R
import com.mints.goodmoney.mvp.presenters.BookPresenter
import com.mints.goodmoney.ui.fragment.base.LazyLoadBaseFragment
import kotlinx.android.synthetic.main.fragment_main_xmly.*
/**
* 描述:喜马拉雅
* 作者:孟崔广
*/
class XmlyFragment : LazyLoadBaseFragment(), View.OnClickListener {
private val bookPresenter by lazy { BookPresenter() }
override fun getContentViewLayoutID() = R.layout.fragment_main_xmly
override fun initViewsAndEvents() {
// bookPresenter.attachView(this)
}
override fun onFragmentFirstVisible() {
loadUrl()
initListener()
}
override fun onFragmentResume() {
super.onFragmentResume()
// if (AppConfig.fragmentClickFlag == Constant.FRAGMENT_CLICK_MAIN) {
// bookPresenter.getReadInfo()
// }
}
override fun onClick(v: View) {
when (v.id) {
R.id.ivXmlyBack -> {
xmly_webview.goBack()
}
}
}
override fun onDestroy() {
super.onDestroy()
// bookPresenter.detachView()
}
/**
* 加载H5Game
*/
private fun loadUrl() {
xmly_webview?.let {
val loadUrl = "http://open.ximalaya.com/new-site/#index/448/ff71a11162f20808f9f349452dd9e141"
val settings = it.settings
// 本地 DOM 存储(解决加载某些网页出现白板现象)
settings.domStorageEnabled = true
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 解决 Android 5.0 上 WebView 默认不允许加载 Http 与 Https 混合内容
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
}
settings.javaScriptEnabled = true
settings.javaScriptCanOpenWindowsAutomatically = true
it.loadUrl(loadUrl)
}
}
private fun initListener() {
ivXmlyBack.setOnClickListener(this)
}
}
\ No newline at end of file
...@@ -6,34 +6,7 @@ ...@@ -6,34 +6,7 @@
android:background="@color/white" android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <include layout="@layout/header_layout" />
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/ivDhBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:layout_marginLeft="20dp"
android:text="主菜单"
android:textColor="@color/black"
android:textSize="16sp" />
<TextView
android:id="@+id/tvDhRefresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/ivDhBack"
android:paddingLeft="10dp"
android:paddingRight="30dp"
android:text="重新加载"
android:textColor="@color/black"
android:layout_marginLeft="20dp"
android:textSize="16sp" />
</RelativeLayout>
<WebView <WebView
android:id="@+id/dh_webview" android:id="@+id/dh_webview"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:id="@+id/ivXmlyBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="6dp"
android:text="返回"
android:textColor="@color/black"
android:textSize="14sp" />
<WebView
android:id="@+id/xmly_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadingEdge="none"
android:overScrollMode="never" />
</LinearLayout>
\ No newline at end of file
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