Commit cec9b7ce authored by wangxuewei's avatar wangxuewei

[提交人]:王雪伟

[提交简述] :幸福农场
[实现方案] :更新小满广点通广告加载方法
加入红包弹窗功能。
parent b5f61ae7
......@@ -5,6 +5,7 @@ import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.View
import com.bx.adsdk.AdSdk
import com.game.luckyfarm.UnityPlayerActivity
import com.umeng.analytics.MobclickAgent
......@@ -38,6 +39,7 @@ import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import org.jetbrains.anko.act
import java.lang.reflect.Method
import java.text.DecimalFormat
/**
* @author (wangXuewei)
......@@ -855,6 +857,141 @@ class GameActivity : UnityPlayerActivity(), IDialogViewCloseCallback {
})
}
fun onGetRedPackList(callback: IUnitySendMessageCallback?) {
GameApiClient.gameApi.getRedPackList()
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<RedPackListEntity>>() {
override fun onSuccess(result: List<RedPackListEntity>?) {
if (result != null) {
Log.d(
"wxw",
"redPack===" + "{\"redPackList\":" + Utils.obj2Str(result) + "}"
)
callback?.onRedPackListSuccess(
true,
"{\"redPackList\":" + Utils.obj2Str(result) + "}"
)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
callback?.onRedPackListSuccess(
false,
"红包列表失败"
)
}
})
}
fun onRedPackReceive(redPackId: Int, moneyNum: String) {
Log.d("wxw", "redId" + redPackId)
GameApiClient.gameApi.getRedPackReceive(redPackId)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<RedPackReceiveEntity>() {
override fun onSuccess(result: RedPackReceiveEntity?) {
if (result != null) {
callUnity("RedPackList", "redPackListDataUpdate", "")
callUnity("TitleView", "getHomeInfo", "")
GameEvent("show_receive_redPack_dialog_success","展示红包领取弹窗成功")
//签到双倍领取弹窗显示
CenterDialog.getTaskRewardDialog(
act,
"+${moneyNum}元",
View.OnClickListener {
GameEvent("click_receive_redPack_double","点击六倍领取")
Log.d("wxw", "签到翻倍广告点击")
AdManager.loadRewardVideoAd(
ADConfig.AD_REWARD_VIDIO,
act,
object : ZXADVideoListener {
override fun onFail() {
}
override fun onSuccess() {
}
override fun onError() {
}
override fun onRewardVideoCached() {
}
override fun setRewardAdInteractionListener() {
}
override fun onRewardVerify() {
}
override fun onVideoError() {
// showToponWaterVideo()
}
override fun onRewardVideoAdLoad() {
}
override fun onRewardVideoAdLoad(entity: NewsEntity) {
}
override fun onAdShow() {
}
override fun onAdVideoBarClick(newsEntity: NewsEntity) {
}
override fun onAdClose() {
//看视频上报
getVideoAcceleratorsReceive();
onRedPackAwardReceive(result.doubleX.multipleSid)
}
override fun onVideoComplete() {
}
override fun onSkippedVideo() {
}
override fun onFullScreenVideoCached() {
}
override fun onLoadVideoAd(rewardVideoAD: ZXADRewardVideo) {
}
})
})
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
GameEvent("show_receive_redPack_dialog_fail","展示红包领取弹窗失败")
}
})
}
fun onRedPackAwardReceive(doubleId: String) {
Log.d("wxw", "double" + doubleId)
GameApiClient.gameApi.getRedPackAwardReceive(doubleId)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<RedPackDoubleReceiveEntity>() {
override fun onSuccess(result: RedPackDoubleReceiveEntity?) {
if (result != null) {
GameEvent("show_receive_redPack_double_success","六倍领取成功")
var allMoneyNum =
"总共获得奖励+${result.rewardContentList[0].totalRewardNum / 100.toDouble()}元";
ToastUtil.showImageToas(act, allMoneyNum)
callUnity("RedPackList", "redPackListDataUpdate", "")
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
GameEvent("show_receive_redPack_double_fail","六倍领取失败")
}
})
}
fun GameEvent(keyName: String, valueName: String) {
EventUtils.onEvent(keyName, valueName);
}
......
......@@ -8,27 +8,40 @@ package com.ym.game
interface IUnitySendMessageCallback {
//主页
fun onHomeSuccess(isSuccess: Boolean, result: String)
//云朵加速
fun onCloudSpeedSuccess(isSuccess: Boolean, result: String)
//土地列表
fun onFarmLandListSuccess(isSuccess: Boolean, result: String)
//土地解锁,种植,收获
fun onLandUnLockSuccess(isSuccess: Boolean, result: String)
//使用加速剂
fun onUseAcceleratorsSuccess(isSuccess: Boolean, result: String)
//购买种子
fun onBuySeedSuccess(isSuccess: Boolean, result: String)
//仓库
fun onHomeWareListSuccess(isSuccess: Boolean, result: String)
//订单列表
fun onOrderListSuccess(isSuccess: Boolean, result: String)
//订单领取
fun onOrderReceiveSuccess(isSuccess: Boolean, result: String)
//看视频获得种子
fun onIncrVideoSeedSuccess(isSuccess: Boolean, result: String)
//看视频获得加速剂
fun onIncrVideoAcceleratorsSuccess(isSuccess: Boolean, result: String)
//看视频获得宝箱奖励
fun onAdFlyBoxSuccess(isSuccess: Boolean, result: String)
//红包列表成功
fun onRedPackListSuccess(isSuccess: Boolean, result: String)
}
\ No newline at end of file
......@@ -32,7 +32,7 @@ class BaseApplication : MultiDexApplication() {
//第一步初始化 application
AppliContext.init(this)
// Config.init(this)
NetConfig.setBase_Url(NetConfig.Environment.DEV)// TODO 上线之后提成成 NetConfig.Environment.PRODUCT
NetConfig.setBase_Url(NetConfig.Environment.PRODUCT)// TODO 上线之后提成成 NetConfig.Environment.PRODUCT
Constant.appLs = "a03d5320d905cf3b"//applsq
AdManager.init(this)
......
package com.ym.game.module;
import java.util.List;
/**
* @author (wangXuewei)
* @datetime 2020-10-30 19:55 GMT+8
* @detail :
*/
public class RedPackDoubleReceiveEntity {
/**
* recode : 1
* msg : 领取成功
* rewardContentList : [{"rewardNum":200,"totalRewardNum":240,"currencyTypeEnum":"CENT","currencyType":10,"rate":null,"cash":0}]
* overRewardContentList : null
* ore : null
* cents : null
* taskId : null
* centTemp : null
* oreTemp : null
* doublingRpk : null
* ext : null
*/
private int recode;
private String msg;
private Object overRewardContentList;
private Object ore;
private Object cents;
private Object taskId;
private Object centTemp;
private Object oreTemp;
private Object doublingRpk;
private Object ext;
private List<RewardContentListBean> rewardContentList;
public int getRecode() {
return recode;
}
public void setRecode(int recode) {
this.recode = recode;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getOverRewardContentList() {
return overRewardContentList;
}
public void setOverRewardContentList(Object overRewardContentList) {
this.overRewardContentList = overRewardContentList;
}
public Object getOre() {
return ore;
}
public void setOre(Object ore) {
this.ore = ore;
}
public Object getCents() {
return cents;
}
public void setCents(Object cents) {
this.cents = cents;
}
public Object getTaskId() {
return taskId;
}
public void setTaskId(Object taskId) {
this.taskId = taskId;
}
public Object getCentTemp() {
return centTemp;
}
public void setCentTemp(Object centTemp) {
this.centTemp = centTemp;
}
public Object getOreTemp() {
return oreTemp;
}
public void setOreTemp(Object oreTemp) {
this.oreTemp = oreTemp;
}
public Object getDoublingRpk() {
return doublingRpk;
}
public void setDoublingRpk(Object doublingRpk) {
this.doublingRpk = doublingRpk;
}
public Object getExt() {
return ext;
}
public void setExt(Object ext) {
this.ext = ext;
}
public List<RewardContentListBean> getRewardContentList() {
return rewardContentList;
}
public void setRewardContentList(List<RewardContentListBean> rewardContentList) {
this.rewardContentList = rewardContentList;
}
public static class RewardContentListBean {
/**
* rewardNum : 200
* totalRewardNum : 240
* currencyTypeEnum : CENT
* currencyType : 10
* rate : null
* cash : 0
*/
private int rewardNum;
private int totalRewardNum;
private String currencyTypeEnum;
private int currencyType;
private Object rate;
private int cash;
public int getRewardNum() {
return rewardNum;
}
public void setRewardNum(int rewardNum) {
this.rewardNum = rewardNum;
}
public int getTotalRewardNum() {
return totalRewardNum;
}
public void setTotalRewardNum(int totalRewardNum) {
this.totalRewardNum = totalRewardNum;
}
public String getCurrencyTypeEnum() {
return currencyTypeEnum;
}
public void setCurrencyTypeEnum(String currencyTypeEnum) {
this.currencyTypeEnum = currencyTypeEnum;
}
public int getCurrencyType() {
return currencyType;
}
public void setCurrencyType(int currencyType) {
this.currencyType = currencyType;
}
public Object getRate() {
return rate;
}
public void setRate(Object rate) {
this.rate = rate;
}
public int getCash() {
return cash;
}
public void setCash(int cash) {
this.cash = cash;
}
}
}
package com.ym.game.module;
/**
* @author (wangXuewei)
* @datetime 2020-10-30 16:21 GMT+8
* @detail :
*/
public class RedPackListEntity {
/**
* id : 1
* coins : 100
* countDownSecond : 0
* totalSecond : 180
*/
private int id;
private int coins;
private int countDownSecond;
private int totalSecond;
private String coinsStr;
public String getCoinsStr() {
return coinsStr;
}
public void setCoinsStr(String coinsStr) {
this.coinsStr = coinsStr;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getCoins() {
return coins;
}
public void setCoins(int coins) {
this.coins = coins;
}
public int getCountDownSecond() {
return countDownSecond;
}
public void setCountDownSecond(int countDownSecond) {
this.countDownSecond = countDownSecond;
}
public int getTotalSecond() {
return totalSecond;
}
public void setTotalSecond(int totalSecond) {
this.totalSecond = totalSecond;
}
}
package com.ym.game.module;
import com.google.gson.annotations.SerializedName;
/**
* @author (wangXuewei)
* @datetime 2020-10-30 19:25 GMT+8
* @detail :
*/
public class RedPackReceiveEntity {
/**
* totalCoins : 240
* totalCents : 37678
* double : {"multipleSid":"70028e066fcc4efda63a8e9f7d403892","buttonText":"看视频3-5倍奖励"}
*/
private int totalCoins;
private int totalCents;
@SerializedName("double")
private DoubleBean doubleX;
public int getTotalCoins() {
return totalCoins;
}
public void setTotalCoins(int totalCoins) {
this.totalCoins = totalCoins;
}
public int getTotalCents() {
return totalCents;
}
public void setTotalCents(int totalCents) {
this.totalCents = totalCents;
}
public DoubleBean getDoubleX() {
return doubleX;
}
public void setDoubleX(DoubleBean doubleX) {
this.doubleX = doubleX;
}
public static class DoubleBean {
/**
* multipleSid : 70028e066fcc4efda63a8e9f7d403892
* buttonText : 看视频3-5倍奖励
*/
private String multipleSid;
private String buttonText;
public String getMultipleSid() {
return multipleSid;
}
public void setMultipleSid(String multipleSid) {
this.multipleSid = multipleSid;
}
public String getButtonText() {
return buttonText;
}
public void setButtonText(String buttonText) {
this.buttonText = buttonText;
}
}
}
......@@ -171,4 +171,32 @@ interface IGameApi {
@POST(NetConfig.Game.URL_GAME_FARM_RANK_RECEIVE)
fun getRankReceive(): Observable<Response<RankReceiveEntity>>
/**
* 红包列表
* @param
* @paramq
* @return
*/
@GET(NetConfig.Game.URL_GAME_RED_PACK_LIST)
fun getRedPackList(): Observable<Response<List<RedPackListEntity>>>
/**
* 红包领取
* @param
* @paramq
* @return
*/
@POST(NetConfig.Game.URL_GAME_RED_PACK_RECEIVE)
fun getRedPackReceive(@Query("id") id: Int): Observable<Response<RedPackReceiveEntity>>
/**
* 红包倍数领取
* @param
* @paramq
* @return
*/
@POST(NetConfig.Game.URL_GAME_RED_PACK_AWARD_RECEIVE)
fun getRedPackAwardReceive(@Query("sid") id: String): Observable<Response<RedPackDoubleReceiveEntity>>
}
\ No newline at end of file
......@@ -33,8 +33,8 @@ dependencies {
}
android {
compileSdkVersion 30
buildToolsVersion '30.0.2'
compileSdkVersion 29
buildToolsVersion '29.0.3'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
......@@ -43,7 +43,7 @@ android {
defaultConfig {
minSdkVersion 21
targetSdkVersion 30
targetSdkVersion 29
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
......
......@@ -92,7 +92,7 @@ dependencies {
api 'com.tencent.bugly:crashreport:latest.release'
api 'com.tencent.bugly:nativecrashreport:latest.release'
api('cn.vlion.inland:inlandmix:9.8.3') {
api('cn.vlion.inland:inlandmix:9.8.2') {
exclude group: 'cn.vlion.inland', module: 'inlandb'
exclude group: 'cn.vlion.inland', module: 'inlandg'
exclude group: 'cn.vlion.inland', module: 'inlands'
......
......@@ -22,23 +22,14 @@
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<!--<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
......@@ -53,7 +44,6 @@
<!--必要权限-->
<!--可选权限-->
<uses-permission android:name="android.permission.GET_TASKS" />
<!--可选,穿山甲提供“获取地理位置权限”和“不给予地理位置权限,开发者传入地理位置参数”两种方式上报用户位置,两种方式均可不选,添加位置权限或参数将帮助投放定位广告-->
<!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
......
......@@ -311,6 +311,10 @@ object AdManager {
container: FrameLayout,
zxadListener: ZXADSplashListener
) {
if(!isInit){
zxadListener.onTimeout()
return
}
ZXADClient.adApi.getAd(type).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() {
override fun onSuccess(result: List<NewsEntity>) {
......@@ -365,6 +369,10 @@ object AdManager {
zxadExpressListener: ZXADExpressListener,
container: FrameLayout
) {
if(!isInit){
zxadExpressListener.onFail()
return
}
if (AdCache.nativeList.get(adType) == null || AdCache.nativeList.get(adType)!!.size <= 0) {
ZXADClient.adApi.getAd(adType).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() {
......@@ -412,6 +420,9 @@ object AdManager {
container: FrameLayout,
adType: String
) {
if(!isInit){
return
}
var arrayList = result as ArrayList
var newsEntity = arrayList[0]
......@@ -479,8 +490,11 @@ object AdManager {
//加载 激励视频广告 和 全屏广告
fun loadRewardVideoAd(slotName: String, mActivity: Activity, listener: ZXADVideoListener) {
if(!isInit){
listener.onError()
return
}
if (AdCache.rewardList.get(slotName) == null || AdCache.rewardList.get(slotName)?.size!! <= 0) {
Log.e(TAG, "请求服务器 获取广告数据")
ZXADClient.adApi.getAd(slotName).compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() {
......
......@@ -237,6 +237,9 @@ public class NetConfig {
public static final String URL_GAME_DAILY_TASK_RECEIVE="app/v1/game/farm/daily_task_receive";//看视频获得加速剂
public static final String URL_GAME_FARM_RANK_RECEIVE="app/v1/game/farm/rank_receive";//排行榜领取
public static final String URL_GAME_RED_PACK_LIST="app/v1/game/farm/rp_list";//红包列表
public static final String URL_GAME_RED_PACK_RECEIVE="app/v1/game/farm/rp/receive";//拆红包 参数传红包id
public static final String URL_GAME_RED_PACK_AWARD_RECEIVE="app/v3/common/award/multiple";//翻倍领取接口
}
}
......@@ -111,7 +111,7 @@ object RSADUtils {
container: FrameLayout,
callback: ZXADCallback
) {
Log.e(TAG, "瑞狮 大图广告 newsEntity.codeId"+newsEntity.codeId)
var nativeManager = NativeManager.initNative()
.setImageAcceptedSize(container.getWidth(), 0) //增加父布局
// .setNativeContainer(nativeLayout)
......@@ -126,9 +126,6 @@ object RSADUtils {
return
}
onEventPullSuccess(newsEntity)
container.visibility = View.VISIBLE
val view = data.nativeView
if (null != view) {
......
......@@ -18,7 +18,7 @@ public class ToastUtil {
text.setText(message); //要提示的文本
Toast toast=new Toast(context); //上下文
toast.setGravity(Gravity.CENTER,0,0); //位置居中
toast.setDuration(Toast.LENGTH_LONG); //设置短暂提示
toast.setDuration(Toast.LENGTH_SHORT); //设置短暂提示
toast.setView(toastview); //把定义好的View布局设置到Toast里面
toast.show();
}
......
......@@ -8,6 +8,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#B2000000"
android:gravity="center"
android:orientation="vertical">
<RelativeLayout
......@@ -16,14 +17,24 @@
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/receive_redpack_bg"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="105dp"
android:text="现金奖励"
android:textColor="#FFFFFF"
android:textSize="16sp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/id_dialog_time_reward_content_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="87dp"
android:background="@drawable/shape_ff404654_r6"
android:layout_marginTop="120dp"
android:orientation="vertical"
android:paddingBottom="10dp">
......@@ -33,66 +44,69 @@
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="65dp"
android:layout_marginTop="45dp"
android:layout_marginBottom="20dp"
android:gravity="center"
android:includeFontPadding="false"
android:text="+0金币"
android:textColor="#ffffd257"
android:textSize="20sp" />
android:text="+0元"
android:textColor="#FDE04C"
android:textSize="40sp"
android:textStyle="bold" />
<RelativeLayout
android:id="@+id/id_rel_dialog_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="20dp"
android:background="@drawable/icon_double_receive_bg">
android:background="@drawable/receive_btn">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="30dp"
android:src="@drawable/receive_video_img" />
<TextView
android:id="@+id/id_tv_dialog_btn_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:drawableLeft="@drawable/icon_ad_play"
android:drawablePadding="8dp"
android:drawablePadding="50dp"
android:gravity="center"
android:text="看视频3-5倍奖励"
android:text="领6倍奖励"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</RelativeLayout>
<TextView
android:id="@+id/id_tv_dialog_datecoins_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="3"
android:textColor="@color/white"
android:visibility="gone" />
<ImageView
android:id="@+id/id_dialog_datecoins_close"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:layout_gravity="center_horizontal"
android:layout_marginRight="2dp"
android:src="@drawable/dialog_lucky_coins_close_grey" />
</LinearLayout>
<TextView
android:id="@+id/id_tv_dialog_datecoins_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="100dp"
android:layout_marginRight="5dp"
android:background="@drawable/receive_time"
android:gravity="center"
android:text="3"
android:textColor="@color/white"
android:visibility="gone" />
<ImageView
android:id="@+id/dialog_time_reward_bg_img"
android:id="@+id/id_dialog_datecoins_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:src="@drawable/icon_task_dialog_icon" />
android:layout_alignParentRight="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="100dp"
android:layout_marginRight="5dp"
android:src="@drawable/receive_close"
android:visibility="visible" />
</RelativeLayout>
<FrameLayout
......
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