Commit 34487f7d authored by jyx's avatar jyx

大转盘换原生

parent 5ad33492
...@@ -273,7 +273,13 @@ dependencies { ...@@ -273,7 +273,13 @@ dependencies {
implementation(name: 'tzsdk_core-3.0.0-20200807131516-release', ext: 'aar') implementation(name: 'tzsdk_core-3.0.0-20200807131516-release', ext: 'aar')
implementation(name: 'tzsdk_reporter-3.0.0-20200807131516-release', ext: 'aar') implementation(name: 'tzsdk_reporter-3.0.0-20200807131516-release', ext: 'aar')
// 快手 // 快手
implementation(name: 'kssdk-ad-3.3.6-publishRelease', ext: 'aar') // implementation(name: 'kssdk-ad-3.3.6-publishRelease', ext: 'aar')
implementation(name: 'kssdk-all--3.3.16-publishRelease-9ffe2b94e', ext: 'aar')
// SDK v2.6.4版本开始,SDK依赖appcompat-v7库,请确保工程中有appcompat-v7
implementation 'com.android.support:appcompat-v7:27.0.2'
// 2.6.5之后的版本,SDK有依赖recyclerview-v7
implementation 'com.android.support:recyclerview-v7:27.0.2'
// 抖音滑动LayoutManager // 抖音滑动LayoutManager
implementation(name: 'LayoutManagerGroup', ext: 'aar') implementation(name: 'LayoutManagerGroup', ext: 'aar')
// 蘑菇星球 // 蘑菇星球
...@@ -285,11 +291,14 @@ dependencies { ...@@ -285,11 +291,14 @@ dependencies {
implementation 'com.squareup.retrofit2:converter-scalars:2.6.2' implementation 'com.squareup.retrofit2:converter-scalars:2.6.2'
implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
// 跑马灯
implementation 'com.sunfusheng:marqueeview:1.2.0'
// 激励视频RTA // 激励视频RTA
implementation(name: 'taskwake1.0', ext: 'aar') implementation(name: 'taskwake1.0', ext: 'aar')
implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
// testImplementation 'junit:junit:4.13' // testImplementation 'junit:junit:4.13'
// androidTestImplementation 'androidx.test.ext:junit:1.1.2' // androidTestImplementation 'androidx.test.ext:junit:1.1.2'
// androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' // androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
......
...@@ -122,7 +122,7 @@ public class MintsApplication extends MultiDexApplication { ...@@ -122,7 +122,7 @@ public class MintsApplication extends MultiDexApplication {
TtCsjAdManager.init(this); TtCsjAdManager.init(this);
// 快手 // 快手
// KsManager.INSTANCE.initKs(this); KsManager.INSTANCE.initKs(this);
// 闪电盒子 // 闪电盒子
WnManager.INSTANCE.initWn(this); WnManager.INSTANCE.initWn(this);
...@@ -131,7 +131,7 @@ public class MintsApplication extends MultiDexApplication { ...@@ -131,7 +131,7 @@ public class MintsApplication extends MultiDexApplication {
MhManager.INSTANCE.initMn(this); MhManager.INSTANCE.initMn(this);
// 天卓珊瑚 // 天卓珊瑚
// TzManager.INSTANCE.initTz(this); TzManager.INSTANCE.initTz(this);
// 一览视频 // 一览视频
YlVideoManager.INSTANCE.init(this); YlVideoManager.INSTANCE.init(this);
......
package com.mints.fairyland.ad.express package com.mints.fairyland.ad.express
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.DialogInterface
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
...@@ -190,6 +191,10 @@ object KsPreLoadExpressManager { ...@@ -190,6 +191,10 @@ object KsPreLoadExpressManager {
// Toast.makeText(mContext, "广告" + ad.appName + "展示", Toast.LENGTH_SHORT).show() // Toast.makeText(mContext, "广告" + ad.appName + "展示", Toast.LENGTH_SHORT).show()
} }
} }
override fun handleDownloadDialog(p0: DialogInterface.OnClickListener?): Boolean {
return false
}
}) })
// 广告描述 // 广告描述
......
...@@ -120,6 +120,10 @@ class KsVideoAdManager private constructor(activity: Activity) : ...@@ -120,6 +120,10 @@ class KsVideoAdManager private constructor(activity: Activity) :
} }
} }
override fun onRequestResult(p0: Int) {
}
}) })
......
...@@ -101,7 +101,10 @@ public class AppConfig { ...@@ -101,7 +101,10 @@ public class AppConfig {
* rtaVideo 剩余广告播放数 * rtaVideo 剩余广告播放数
*/ */
public static int rtaVideoAdCount = 5; public static int rtaVideoAdCount = 5;
/**
* csjFull 剩余广告播放数
*/
public static int csjFullVedioAdCount = 0;
/** /**
* 高额试玩任务标识 * 高额试玩任务标识
*/ */
...@@ -132,4 +135,8 @@ public class AppConfig { ...@@ -132,4 +135,8 @@ public class AppConfig {
*/ */
public static boolean isSuperTask = false; public static boolean isSuperTask = false;
/**
* 激励视频是否休眠 false-不休眠 提示:加载失败,请稍后重试。
*/
public static boolean isVideoSleep = false;
} }
...@@ -12,17 +12,17 @@ import com.mints.fairyland.R ...@@ -12,17 +12,17 @@ import com.mints.fairyland.R
*/ */
object KsManager { object KsManager {
private const val KS_APP_ID = "" private const val KS_APP_ID = "574600003"
/* splash-postid */ /* splash-postid */
const val KS_AD_SPLASH_POSTID = 0L const val KS_AD_SPLASH_POSTID = 0L
/*信息流*/ /*信息流*/
val KS_AD_NATIVEEXPRESS_DRAW = 0L val KS_AD_NATIVEEXPRESS_DRAW = 0L
const val KS_AD_NATIVEEXPRESS_AWARD = 0L const val KS_AD_NATIVEEXPRESS_AWARD = 5746000012L
/* vedio-postid */ /* vedio-postid */
const val KS_AD_VEDIO_POSTID = 0L const val KS_AD_VEDIO_POSTID = 5746000011L
/** /**
* 初始化 * 初始化
......
...@@ -125,4 +125,11 @@ public class TrackManager { ...@@ -125,4 +125,11 @@ public class TrackManager {
trackPresenter.reportAddCoinMsg(activity, vo); trackPresenter.reportAddCoinMsg(activity, vo);
} }
} }
public void getAdWeight() {
if (trackPresenter != null && !TextUtils.isEmpty(UserManager.getInstance().getUserID())) {
trackPresenter.getAdWeight();
}
}
} }
...@@ -18,8 +18,8 @@ object TzManager { ...@@ -18,8 +18,8 @@ object TzManager {
fun initTz(application: Application) { fun initTz(application: Application) {
ADEngine.getInstance(application) ADEngine.getInstance(application)
.start(ADEngineConfig.Builder(application) .start(ADEngineConfig.Builder(application)
.appKey("") .appKey("4f064c84540f458eed9e99d3545525fd")
.appSecret("") .appSecret("ffd0594f3fb0b57258c3a611575c6aa1")
.appChannel(CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME")) .appChannel(CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME"))
.forTest(false) .forTest(false)
.build(), .build(),
......
package com.mints.fairyland.manager
import com.mints.fairyland.ad.video.VideoAdingManager
import com.mints.fairyland.common.AppConfig
import com.mints.fairyland.mvp.model.UserTaskMsgBean
import com.mints.fairyland.utils.ForegroundOrBackground
import com.mints.fairyland.utils.LogUtil
/**
* 描述:用户广告视频数和权重
* 作者:孟崔广
*/
object UserWeight {
private val TAG = UserWeight::class.java.simpleName
private val videoAdingManager by lazy { VideoAdingManager.getInstance(ForegroundOrBackground.getApp_activity()) }
fun initAdWeight(data: UserTaskMsgBean) {
AppConfig.isVideoSleep = data.vedioRules.isVedioSleep
videoAdingManager.run {
initAdWeight(data.vedioRules.csJ_VEDIO.rate,
data.vedioRules.ylH_VEDIO.rate,
data.vedioRules.sdhZ_VEDIO.rate,
data.vedioRules.fL_VEDIO.rate,
data.vedioRules.corAl_VIDEO.rate,
data.vedioRules.csjfulL_VEDIO.rate,
data.vedioRules.kS_VEDIO.rate)
}
LogUtil.d(TAG, "首页权重值:csjWeight:${data.vedioRules.csJ_VEDIO.rate} " +
"ylhWeight:${data.vedioRules.ylH_VEDIO.rate} " +
"sdhzWeight:${data.vedioRules.sdhZ_VEDIO.rate} " +
"csjFullWeight:${data.vedioRules.csjfulL_VEDIO.rate} " +
"shWeight:${data.vedioRules.corAl_VIDEO.rate} " +
"flWeight:${data.vedioRules.fL_VEDIO.rate} " +
"ksWeight:${data.vedioRules.kS_VEDIO.rate} ")
// 广告视频数
AppConfig.csjVideoAdCount = data.vedioRules.csJ_VEDIO.surplus
AppConfig.ylhAdCount = data.vedioRules.ylH_VEDIO.surplus
AppConfig.wnVideoAdCount = data.vedioRules.sdhZ_VEDIO.surplus
AppConfig.flVideoAdCount = data.vedioRules.fL_VEDIO.surplus
AppConfig.csjFullVedioAdCount = data.vedioRules.csjfulL_VEDIO.surplus
AppConfig.shVideoAdCount = data.vedioRules.corAl_VIDEO.surplus
AppConfig.ksVideoAdCount = data.vedioRules.kS_VEDIO.surplus
LogUtil.d(TAG, "首页视频数:csjCount:${AppConfig.csjVideoAdCount} " +
"ylhCount:${AppConfig.ylhAdCount} " +
"sdhzCount:${AppConfig.wnVideoAdCount} " +
"shCount:${AppConfig.shVideoAdCount} " +
"flCount:${AppConfig.flVideoAdCount} " +
"ksCount:${AppConfig.ksVideoAdCount} ")
}
}
\ No newline at end of file
package com.mints.fairyland.mvp.model;
import java.io.Serializable;
public class ClickTurnBean implements Serializable {
/**
* config : {"count":250,"type":"coin","key":"t5","index":5,"title":"250金币"}
* sumCoin : 7580
* coinKey : 2108214495303800003
* turntableKey : 2108214495303800003
*/
private ConfigBean config;
private int sumCoin;
private String coinKey;
private String turntableKey;
public ConfigBean getConfig() {
return config;
}
public void setConfig(ConfigBean config) {
this.config = config;
}
public int getSumCoin() {
return sumCoin;
}
public void setSumCoin(int sumCoin) {
this.sumCoin = sumCoin;
}
public String getCoinKey() {
return coinKey;
}
public void setCoinKey(String coinKey) {
this.coinKey = coinKey;
}
public String getTurntableKey() {
return turntableKey;
}
public void setTurntableKey(String turntableKey) {
this.turntableKey = turntableKey;
}
public class ConfigBean implements Serializable{
/**
* count : 250
* type : coin
* key : t5
* index : 5
* title : 250金币
*/
private int count;
private String type;
private String key;
private int index;
private String title;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}
package com.mints.fairyland.mvp.model;
import java.io.Serializable;
import java.util.List;
public class TurnBean implements Serializable {
/**
* configs : [{"count":150,"type":"coin","key":"t1","index":0,"title":"150金币"},{"count":10,"type":"cash","key":"t2","index":1,"title":"现金10元"},{"count":200,"type":"coin","key":"t8","index":2,"title":"200金币"},{"count":100,"type":"coin","key":"t3","index":3,"title":"100金币"},{"count":300,"type":"coin","key":"t4","index":4,"title":"300金币"},{"count":250,"type":"coin","key":"t5","index":5,"title":"250金币"},{"count":350,"type":"coin","key":"t6","index":6,"title":"350金币"},{"count":40,"type":"cash","key":"t7","index":7,"title":"现金40元"}]
* max : 30
*/
private List<ConfigsBean> configs;
private int max;
private String titleMsg;
private int surplus;
private List<BottomsBean> bottoms;
public List<ConfigsBean> getConfigs() {
return configs;
}
public String getTitleMsg() {
return titleMsg;
}
public void setTitleMsg(String titleMsg) {
this.titleMsg = titleMsg;
}
public int getSurplus() {
return surplus;
}
public void setSurplus(int surplus) {
this.surplus = surplus;
}
public void setConfigs(List<ConfigsBean> configs) {
this.configs = configs;
}
public int getMax() {
return max;
}
public void setMax(int max) {
this.max = max;
}
public List<BottomsBean> getBottoms() {
return bottoms;
}
public void setBottoms(List<BottomsBean> bottoms) {
this.bottoms = bottoms;
}
public class BottomsBean implements Serializable {
/**
* title : 高额赚
* icon : https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_goodmoney/img/readnews.png
* toOtherKey : 1
* rewardTitle : 抽奖 +1
*/
private String title;
private String icon;
private String toOtherKey;
private String rewardTitle;
private ParamsBean params;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public String getToOtherKey() {
return toOtherKey;
}
public void setToOtherKey(String toOtherKey) {
this.toOtherKey = toOtherKey;
}
public String getRewardTitle() {
return rewardTitle;
}
public void setRewardTitle(String rewardTitle) {
this.rewardTitle = rewardTitle;
}
public class ParamsBean implements Serializable {
private int max;
private int complete;
private int coin;
public int getMax() {
return max;
}
public int getComplete() {
return complete;
}
public int getCoin() {
return coin;
}
}
}
public class ConfigsBean implements Serializable {
/**
* count : 150
* type : coin
* key : t1
* index : 0
* title : 150金币
*/
private int count;
private String type;
private String key;
private int index;
private String title;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
}
package com.mints.fairyland.mvp.model; package com.mints.fairyland.mvp.model;
import com.mints.fairyland.mvp.model.AdcodeBean;
import com.mints.fairyland.mvp.model.FlowAdRulesBean;
import com.mints.fairyland.mvp.model.OfflineBean;
import com.mints.fairyland.mvp.model.UserRiskAppsBean;
import com.mints.fairyland.mvp.model.VedioRulesBean;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList;
public class UserTaskMsgBean implements Serializable { public class UserTaskMsgBean implements Serializable {
......
...@@ -10,9 +10,18 @@ public class VedioRulesBean implements Serializable { ...@@ -10,9 +10,18 @@ public class VedioRulesBean implements Serializable {
private FLVedioBean FL_VEDIO; private FLVedioBean FL_VEDIO;
private CsjfullVedioBean CSJFULL_VEDIO; private CsjfullVedioBean CSJFULL_VEDIO;
private CORALVedioBean CORAL_VEDIO; private CORALVedioBean CORAL_VEDIO;
private KSVedioBean KS_VEDIO;
private RTAVedioBean RTA_VEDIO; public KsVedioBean getKS_VEDIO() {
return KS_VEDIO;
}
public void setKS_VEDIO(KsVedioBean KS_VEDIO) {
this.KS_VEDIO = KS_VEDIO;
}
private KsVedioBean KS_VEDIO;
private boolean flVideoFlag; private boolean flVideoFlag;
private boolean vedioSleep;
public class CsjVedioBean implements Serializable { public class CsjVedioBean implements Serializable {
private int surplus;//剩余可看视频数 private int surplus;//剩余可看视频数
...@@ -79,7 +88,7 @@ public class VedioRulesBean implements Serializable { ...@@ -79,7 +88,7 @@ public class VedioRulesBean implements Serializable {
} }
} }
public class KSVedioBean implements Serializable { public class CsjfullVedioBean implements Serializable {
private int surplus; private int surplus;
private int rate; private int rate;
...@@ -90,22 +99,10 @@ public class VedioRulesBean implements Serializable { ...@@ -90,22 +99,10 @@ public class VedioRulesBean implements Serializable {
public int getRate() { public int getRate() {
return rate; return rate;
} }
}
public class RTAVedioBean implements Serializable {
private int surplus;
private int rate;
public int getSurplus() {
return surplus;
}
public int getRate() {
return rate;
}
} }
public class CsjfullVedioBean implements Serializable { public class KsVedioBean implements Serializable {
private int surplus; private int surplus;
private int rate; private int rate;
...@@ -139,18 +136,6 @@ public class VedioRulesBean implements Serializable { ...@@ -139,18 +136,6 @@ public class VedioRulesBean implements Serializable {
return CORAL_VEDIO; return CORAL_VEDIO;
} }
public RTAVedioBean getRTA_VEDIO() {
return RTA_VEDIO;
}
public void setRTA_VEDIO(RTAVedioBean RTA_VEDIO) {
this.RTA_VEDIO = RTA_VEDIO;
}
public KSVedioBean getKS_VEDIO() {
return KS_VEDIO;
}
public CsjfullVedioBean getCSJFULL_VEDIO() { public CsjfullVedioBean getCSJFULL_VEDIO() {
return CSJFULL_VEDIO; return CSJFULL_VEDIO;
} }
...@@ -158,4 +143,8 @@ public class VedioRulesBean implements Serializable { ...@@ -158,4 +143,8 @@ public class VedioRulesBean implements Serializable {
public boolean isFlVideoFlag() { public boolean isFlVideoFlag() {
return flVideoFlag; return flVideoFlag;
} }
public boolean isVedioSleep() {
return vedioSleep;
}
} }
...@@ -7,8 +7,10 @@ import com.mints.fairyland.MintsApplication; ...@@ -7,8 +7,10 @@ import com.mints.fairyland.MintsApplication;
import com.mints.fairyland.common.AppConfig; import com.mints.fairyland.common.AppConfig;
import com.mints.fairyland.common.Constant; import com.mints.fairyland.common.Constant;
import com.mints.fairyland.manager.AppHttpManager; import com.mints.fairyland.manager.AppHttpManager;
import com.mints.fairyland.manager.UserWeight;
import com.mints.fairyland.mvp.model.BaseResponse; import com.mints.fairyland.mvp.model.BaseResponse;
import com.mints.fairyland.mvp.model.CommonParamBean; import com.mints.fairyland.mvp.model.CommonParamBean;
import com.mints.fairyland.mvp.model.UserTaskMsgBean;
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;
...@@ -224,6 +226,29 @@ public class TrackPresenter extends BaseTrackPresenter { ...@@ -224,6 +226,29 @@ public class TrackPresenter extends BaseTrackPresenter {
}); });
} }
/**
* 获取权重
*/
public void getAdWeight() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.vedioPlans(),
new BaseSubscriber<BaseResponse<UserTaskMsgBean>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(BaseResponse<UserTaskMsgBean> baseResponse) {
UserWeight.INSTANCE.initAdWeight(baseResponse.getData());
}
});
}
/** /**
* 首页是否显示微转 * 首页是否显示微转
*/ */
......
package com.mints.fairyland.mvp.presenters
import android.text.TextUtils
import com.google.gson.Gson
import com.google.gson.JsonObject
import com.google.gson.reflect.TypeToken
import com.mints.fairyland.MintsApplication
import com.mints.fairyland.common.DeviceInfo
import com.mints.fairyland.manager.AppHttpManager
import com.mints.fairyland.manager.ShumeiManager
import com.mints.fairyland.manager.UserManager
import com.mints.fairyland.mvp.model.BaseResponse
import com.mints.fairyland.mvp.model.ClickTurnBean
import com.mints.fairyland.mvp.model.TurnBean
import com.mints.fairyland.mvp.model.UserBean
import com.mints.fairyland.mvp.views.TurnTableView
import com.mints.fairyland.utils.DeviceUuidFactory
import com.mints.library.net.neterror.BaseSubscriber
import com.mints.library.net.neterror.Throwable
import java.util.*
class TurnTablePresenter : BasePresenter<TurnTableView>() {
fun getTurnMsg() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.getTurnMsg(),
object : BaseSubscriber<BaseResponse<TurnBean>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
if (isLinkView) return
view.showToast(e.message)
}
override fun onNext(baseResponse: BaseResponse<TurnBean>) {
if (isLinkView) return
val code = baseResponse.getStatus()
val message = baseResponse.getMessage()
when (code) {
200 -> {
view.getTurnTableSuc(baseResponse.data)
}
else -> view.showToast(message)
}
}
})
}
fun addTurnToOtherMsg(toOtherKey: String) {
val vo = HashMap<String, Any>()
vo["toOther"] = toOtherKey
AppHttpManager.getInstance(loanApplication)
.call(loanService.addTurnToOtherMsg(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
if (isLinkView) return
view.showToast(e.message)
}
override fun onNext(baseResponse: BaseResponse<Any>) {
if (isLinkView) return
val code = baseResponse.getStatus()
val message = baseResponse.getMessage()
when (code) {
200 -> {
}
else -> view.showToast(message)
}
}
})
}
fun cashoutLeaders() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.cashoutLeaders(),
object : BaseSubscriber<BaseResponse<JsonObject>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
}
override fun onNext(baseResponse: BaseResponse<JsonObject>) {
if (isLinkView) return
val code = baseResponse.getStatus()
val message = baseResponse.getMessage()
when (code) {
200 -> {
val data = baseResponse.data
if (data.get("list") != null) {
val listArray = Gson().fromJson(data.get("list"),
object : TypeToken<ArrayList<String>>() {}.type) as ArrayList<String>
view.cashoutLeadersSuc(listArray)
}
}
else -> view.showToast(message)
}
}
})
}
fun clickForTurn() {
AppHttpManager.getInstance(loanApplication)
.call(loanService.clickForTurn(),
object : BaseSubscriber<BaseResponse<ClickTurnBean>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
if (isLinkView) return
view.showToast(e.message)
}
override fun onNext(baseResponse: BaseResponse<ClickTurnBean>) {
if (isLinkView) return
val code = baseResponse.getStatus()
val message = baseResponse.getMessage()
when (code) {
200 -> {
view.clickForTurnSuc(baseResponse.data)
}
else -> view.showToast(message)
}
}
})
}
/**
* 游客登录
*/
fun userLogin() {
val vo = HashMap<String, Any>()
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
vo["shumeiId"] = ShumeiManager.getInstance().shumeiDeviceId
AppHttpManager.getInstance(loanApplication)
.call(loanService.visitorlogin(vo),
object : BaseSubscriber<BaseResponse<UserBean>>() {
override fun onCompleted() {
}
override fun onError(e: Throwable) {
}
override fun onNext(baseResponse: BaseResponse<UserBean>) {
if (isLinkView) return
val code = baseResponse.getStatus()
val message = baseResponse.getMessage()
val data: UserBean? = baseResponse.getData()
when (code) {
200 -> if (data != null) {
UserManager.getInstance().saveUserInfo(data)
saveTerminalInfo()
}
else -> view.showToast(message)
}
}
})
}
/**
* 提交设备信息
*
* @param context
*/
fun saveTerminalInfo() {
val vo = HashMap<String, Any>()
val deviceInfo: DeviceInfo = DeviceInfo.instance
val macAddress: String = deviceInfo.getMacAddress()
val mac = macAddress.replace(":", "")
vo["mac"] = mac
vo["mac1"] = macAddress
vo["androidid"] = deviceInfo.getAndroidId(null)
vo["imei"] = deviceInfo.iMEI
if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo["oaid"] = MintsApplication.OAID
}
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
override fun onCompleted() {
if (isLinkView) return
}
override fun onError(e: Throwable) {
if (isLinkView) return
}
override fun onNext(baseResponse: BaseResponse<Any>) {
if (isLinkView) return
val code = baseResponse.status
when (code) {
200 -> {
getTurnMsg()
}
}
}
})
}
}
\ No newline at end of file
package com.mints.fairyland.mvp.views
import com.mints.fairyland.mvp.model.ClickTurnBean
import com.mints.fairyland.mvp.model.TurnBean
interface TurnTableView : BaseView {
fun getTurnTableSuc(data: TurnBean)
fun cashoutLeadersSuc(data:ArrayList<String>)
fun clickForTurnSuc(data: ClickTurnBean)
}
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.mints.fairyland.BuildConfig; ...@@ -7,6 +7,7 @@ import com.mints.fairyland.BuildConfig;
import com.mints.fairyland.mvp.model.AccountMsgBean; import com.mints.fairyland.mvp.model.AccountMsgBean;
import com.mints.fairyland.mvp.model.BannerBean; import com.mints.fairyland.mvp.model.BannerBean;
import com.mints.fairyland.mvp.model.BaseResponse; import com.mints.fairyland.mvp.model.BaseResponse;
import com.mints.fairyland.mvp.model.ClickTurnBean;
import com.mints.fairyland.mvp.model.CommonParamBean; import com.mints.fairyland.mvp.model.CommonParamBean;
import com.mints.fairyland.mvp.model.DrawcashBean; import com.mints.fairyland.mvp.model.DrawcashBean;
import com.mints.fairyland.mvp.model.DrawcashRecordBean; import com.mints.fairyland.mvp.model.DrawcashRecordBean;
...@@ -20,6 +21,7 @@ import com.mints.fairyland.mvp.model.MorningClockBean; ...@@ -20,6 +21,7 @@ import com.mints.fairyland.mvp.model.MorningClockBean;
import com.mints.fairyland.mvp.model.MyInfo; import com.mints.fairyland.mvp.model.MyInfo;
import com.mints.fairyland.mvp.model.SignCardBean; import com.mints.fairyland.mvp.model.SignCardBean;
import com.mints.fairyland.mvp.model.TaskCpdBean; import com.mints.fairyland.mvp.model.TaskCpdBean;
import com.mints.fairyland.mvp.model.TurnBean;
import com.mints.fairyland.mvp.model.UserBean; import com.mints.fairyland.mvp.model.UserBean;
import com.mints.fairyland.mvp.model.UserTaskMsgBean; import com.mints.fairyland.mvp.model.UserTaskMsgBean;
import com.mints.fairyland.mvp.model.Version; import com.mints.fairyland.mvp.model.Version;
...@@ -569,6 +571,47 @@ public interface LoanService { ...@@ -569,6 +571,47 @@ public interface LoanService {
@POST("api/getCpdUseAppModelMsg") @POST("api/getCpdUseAppModelMsg")
Observable<BaseResponse<TaskCpdBean>> getCpdUseAppModelMsg(); Observable<BaseResponse<TaskCpdBean>> getCpdUseAppModelMsg();
/**
* 获取大转盘信息
*
* @return
*/
@POST("api/turn/getTurnMsg")
Observable<BaseResponse<TurnBean>> getTurnMsg();
/**
* 点击获取转盘信息
*
* @return
*/
@POST("api/turn/clickForTurn")
Observable<BaseResponse<ClickTurnBean>> clickForTurn();
/**
* 大转盘点击入口
*
* @return
*/
@POST("api/turn/addTurnToOtherMsg")
Observable<BaseResponse<Object>> addTurnToOtherMsg(@Body Map<String, Object> vo);
/**
* 提现列表展示
*
* @return
*/
@POST("common/cashoutLeadersForApp")
Observable<BaseResponse<JsonObject>> cashoutLeaders();
/**
* 获取权重信息
*
* @return
*/
@POST("api/vedioPlans")
Observable<BaseResponse<UserTaskMsgBean>> vedioPlans();
/** /**
* 默认http工厂 * 默认http工厂
*/ */
......
...@@ -502,7 +502,10 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener { ...@@ -502,7 +502,10 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener {
* 获取激励视频 * 获取激励视频
*/ */
private fun awardVideo() { private fun awardVideo() {
if (videoAdingManager.videoFinishFlag) { if (AppConfig.isVideoSleep) {
showToast("加载失败,请稍后重试。")
return
} else if (videoAdingManager.videoFinishFlag) {
showToast("今日视频已看完,请明天再来吧") showToast("今日视频已看完,请明天再来吧")
return return
} }
......
...@@ -305,16 +305,13 @@ class DrawcashActivity : BaseActivity(), ...@@ -305,16 +305,13 @@ class DrawcashActivity : BaseActivity(),
data.fL_VEDIO, data.fL_VEDIO,
data.coraL_VEDIO, data.coraL_VEDIO,
data.csjfulL_VEDIO, data.csjfulL_VEDIO,
data.kS_VEDIO, data.kS_VEDIO)
data.rtA_VEDIO
)
LogUtil.d(TAG, "提现权重值:csjWeight:${data.csJ_VEDIO} " + LogUtil.d(TAG, "提现权重值:csjWeight:${data.csJ_VEDIO} " +
"ylhWeight:${data.ylH_VEDIO} " + "ylhWeight:${data.ylH_VEDIO} " +
"sdhzWeight:${data.sdhZ_VEDIO} " + "sdhzWeight:${data.sdhZ_VEDIO} " +
"csjFullWeight:${data.csjfulL_VEDIO} " + "csjFullWeight:${data.csjfulL_VEDIO} " +
"shWeight:${data.coraL_VEDIO} " + "shWeight:${data.coraL_VEDIO} " +
"flWeight:${data.fL_VEDIO} " + "flWeight:${data.fL_VEDIO} " +
"rtaWeight:${data.rtA_VEDIO} " +
"ksWeight:${data.kS_VEDIO}" "ksWeight:${data.kS_VEDIO}"
) )
// 广告视频数 // 广告视频数
...@@ -325,7 +322,6 @@ class DrawcashActivity : BaseActivity(), ...@@ -325,7 +322,6 @@ class DrawcashActivity : BaseActivity(),
AppConfig.shVideoAdCount = 10 AppConfig.shVideoAdCount = 10
AppConfig.csjFullVideoAdCount = 10 AppConfig.csjFullVideoAdCount = 10
AppConfig.ksVideoAdCount = 10 AppConfig.ksVideoAdCount = 10
AppConfig.rtaVideoAdCount = 10
} }
/** /**
......
...@@ -14,6 +14,7 @@ import com.mints.fairyland.call.business.VideoDBHelper ...@@ -14,6 +14,7 @@ import com.mints.fairyland.call.business.VideoDBHelper
import com.mints.fairyland.call.detail.DetailApplyActivity import com.mints.fairyland.call.detail.DetailApplyActivity
import com.mints.fairyland.call.permission.PermissionActivity import com.mints.fairyland.call.permission.PermissionActivity
import com.mints.fairyland.call.permission.PermissionManager import com.mints.fairyland.call.permission.PermissionManager
import com.mints.fairyland.common.AppConfig
import com.mints.fairyland.common.Constant import com.mints.fairyland.common.Constant
import com.mints.fairyland.manager.UserManager import com.mints.fairyland.manager.UserManager
import com.mints.fairyland.mvp.model.KylBean import com.mints.fairyland.mvp.model.KylBean
...@@ -163,7 +164,10 @@ class KylVideoActivity : BaseActivity(), View.OnClickListener, KylVideoView { ...@@ -163,7 +164,10 @@ class KylVideoActivity : BaseActivity(), View.OnClickListener, KylVideoView {
* 获取激励视频 * 获取激励视频
*/ */
private fun awardVideo() { private fun awardVideo() {
if (videoAdingManager.videoFinishFlag) { if (AppConfig.isVideoSleep) {
showToast("加载失败,请稍后重试。")
return
} else if (videoAdingManager.videoFinishFlag) {
showToast("今日视频已看完,请明天再来吧") showToast("今日视频已看完,请明天再来吧")
return return
} }
......
...@@ -265,7 +265,7 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener { ...@@ -265,7 +265,7 @@ class MainActivity : BaseActivity(), MainView, View.OnClickListener {
private fun clickTab3Layout() { private fun clickTab3Layout() {
AppConfig.fragmentClickFlag = Constant.FRAGMENT_CLICK_THREE AppConfig.fragmentClickFlag = Constant.FRAGMENT_CLICK_THREE
if (panFragment == null) { if (panFragment == null) {
panFragment = PanFragment() panFragment = TurnTableFragment()
} }
addOrShowFragment(supportFragmentManager, panFragment!!, Constant.FRAGMENT_TAG_THREE) addOrShowFragment(supportFragmentManager, panFragment!!, Constant.FRAGMENT_TAG_THREE)
tab_iv_one.isSelected = false tab_iv_one.isSelected = false
......
...@@ -8,6 +8,7 @@ import com.mints.fairyland.R ...@@ -8,6 +8,7 @@ import com.mints.fairyland.R
import com.mints.fairyland.ad.video.VideoAdingManager import com.mints.fairyland.ad.video.VideoAdingManager
import com.mints.fairyland.common.Constant import com.mints.fairyland.common.Constant
import com.mints.fairyland.ad.express.TTPreLoadCarrierExpressManager import com.mints.fairyland.ad.express.TTPreLoadCarrierExpressManager
import com.mints.fairyland.common.AppConfig
import com.mints.fairyland.manager.TtCsjAdManager import com.mints.fairyland.manager.TtCsjAdManager
import com.mints.fairyland.mvp.model.MorningClockBean import com.mints.fairyland.mvp.model.MorningClockBean
import com.mints.fairyland.mvp.model.VideoAdingBean import com.mints.fairyland.mvp.model.VideoAdingBean
...@@ -107,7 +108,10 @@ class MorningClockActivity : BaseActivity(), View.OnClickListener, MorningClockV ...@@ -107,7 +108,10 @@ class MorningClockActivity : BaseActivity(), View.OnClickListener, MorningClockV
* 获取激励视频 * 获取激励视频
*/ */
private fun awardVideo() { private fun awardVideo() {
if (videoAdingManager.videoFinishFlag) { if (AppConfig.isVideoSleep) {
showToast("加载失败,请稍后重试。")
return
} else if (videoAdingManager.videoFinishFlag) {
showToast("今日视频已看完,请明天再来吧") showToast("今日视频已看完,请明天再来吧")
return return
} }
......
...@@ -100,6 +100,10 @@ class SplashKsADActivity : BaseActivity() { ...@@ -100,6 +100,10 @@ class SplashKsADActivity : BaseActivity() {
next() next()
} }
override fun onRequestResult(p0: Int) {
}
override fun onSplashScreenAdLoad(p0: KsSplashScreenAd?) { override fun onSplashScreenAdLoad(p0: KsSplashScreenAd?) {
LogUtil.d(TAG, "onSplashScreenAdLoad") LogUtil.d(TAG, "onSplashScreenAdLoad")
......
package com.mints.fairyland.ui.adapter;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.daimajia.androidanimations.library.Techniques;
import com.daimajia.androidanimations.library.YoYo;
import com.mints.fairyland.R;
import com.mints.fairyland.mvp.model.TurnBean;
import com.mints.fairyland.utils.rxutil.CommonRxTask;
import com.mints.fairyland.utils.rxutil.RxjavaUtil;
import com.mints.library.utils.GlideUtils;
import java.util.List;
public class TurnTableAdapter extends BaseAdapter {
private List<TurnBean.BottomsBean> orders;
private Activity activity;
private YoYo.AnimationComposer rope;
public TurnTableAdapter(Activity activity, List<TurnBean.BottomsBean> orders) {
this.orders = orders;
this.activity = activity;
rope = YoYo.with(Techniques.Pulse).duration(1000).repeat(0);
}
@Override
public int getCount() {
return orders == null ? 0 : orders.size();
}
@Override
public Object getItem(int position) {
return orders.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("WrongViewCast")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(activity);
convertView = inflater.inflate(R.layout.item_list_turn, null);
viewHolder = new ViewHolder();
viewHolder.ic_turn_icon = convertView.findViewById(R.id.ic_turn_icon);
viewHolder.tv_turn_top = convertView.findViewById(R.id.tv_turn_top);
viewHolder.tv_turn_bottom = convertView.findViewById(R.id.tv_turn_bottom);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
TurnBean.BottomsBean data = orders.get(position);
if (data != null) {
GlideUtils.loadImageView(activity, data.getIcon(), viewHolder.ic_turn_icon);
viewHolder.tv_turn_top.setText(TextUtils.isEmpty(data.getRewardTitle()) ? "" : data.getRewardTitle());
viewHolder.tv_turn_bottom.setText(data.getTitle());
if (!TextUtils.isEmpty(data.getRewardTitle())) {
RxjavaUtil.executeRxTask(new CommonRxTask<String>("") {
@Override
public void doInIOThread() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public void doInUIThread() {
rope.playOn(viewHolder.ic_turn_icon);
}
});
}
}
return convertView;
}
class ViewHolder {
public ImageView ic_turn_icon;
public TextView tv_turn_top;
public TextView tv_turn_bottom;
}
}
...@@ -19,7 +19,6 @@ import androidx.viewpager.widget.ViewPager ...@@ -19,7 +19,6 @@ import androidx.viewpager.widget.ViewPager
import com.component.dly.xzzq_ywsdk.YwSDK_WebActivity.Companion.open import com.component.dly.xzzq_ywsdk.YwSDK_WebActivity.Companion.open
import com.fly.scenemodule.SceneUtil import com.fly.scenemodule.SceneUtil
import com.mints.fairyland.BuildConfig import com.mints.fairyland.BuildConfig
import com.mints.fairyland.MintsApplication
import com.mints.fairyland.R import com.mints.fairyland.R
import com.mints.fairyland.ad.banner.BannerManager import com.mints.fairyland.ad.banner.BannerManager
import com.mints.fairyland.ad.express.PreLoadExpressManager import com.mints.fairyland.ad.express.PreLoadExpressManager
...@@ -1048,7 +1047,10 @@ class MyFragment : BaseFragment(), ...@@ -1048,7 +1047,10 @@ class MyFragment : BaseFragment(),
* 获取激励视频 * 获取激励视频
*/ */
private fun awardVideo(coin: Int, carrierType: String) { private fun awardVideo(coin: Int, carrierType: String) {
if (videoAdingManager.videoFinishFlag) { if (AppConfig.isVideoSleep) {
showToast("加载失败,请稍后重试。")
return
} else if (videoAdingManager.videoFinishFlag) {
showToast("今日视频已看完,请明天再来吧") showToast("今日视频已看完,请明天再来吧")
return return
} }
...@@ -1211,8 +1213,7 @@ class MyFragment : BaseFragment(), ...@@ -1211,8 +1213,7 @@ class MyFragment : BaseFragment(),
data.vedioRules.fL_VEDIO.rate, data.vedioRules.fL_VEDIO.rate,
data.vedioRules.corAl_VIDEO.rate, data.vedioRules.corAl_VIDEO.rate,
data.vedioRules.csjfulL_VEDIO.rate, data.vedioRules.csjfulL_VEDIO.rate,
data.vedioRules.kS_VEDIO.rate, data.vedioRules.kS_VEDIO.rate
data.vedioRules.rtA_VEDIO.rate
) )
LogUtil.d(TAG, "首页权重值:csjWeight:${data.vedioRules.csJ_VEDIO.rate} " + LogUtil.d(TAG, "首页权重值:csjWeight:${data.vedioRules.csJ_VEDIO.rate} " +
"ylhWeight:${data.vedioRules.ylH_VEDIO.rate} " + "ylhWeight:${data.vedioRules.ylH_VEDIO.rate} " +
...@@ -1220,7 +1221,6 @@ class MyFragment : BaseFragment(), ...@@ -1220,7 +1221,6 @@ class MyFragment : BaseFragment(),
"csjFullWeight:${data.vedioRules.csjfulL_VEDIO.rate} " + "csjFullWeight:${data.vedioRules.csjfulL_VEDIO.rate} " +
"shWeight:${data.vedioRules.corAl_VIDEO.rate} " + "shWeight:${data.vedioRules.corAl_VIDEO.rate} " +
"flWeight:${data.vedioRules.fL_VEDIO.rate} " + "flWeight:${data.vedioRules.fL_VEDIO.rate} " +
"rtaWeight:${data.vedioRules.rtA_VEDIO.rate} " +
"ksWeight:${data.vedioRules.kS_VEDIO.rate}" "ksWeight:${data.vedioRules.kS_VEDIO.rate}"
) )
// 广告视频数 // 广告视频数
...@@ -1230,7 +1230,6 @@ class MyFragment : BaseFragment(), ...@@ -1230,7 +1230,6 @@ class MyFragment : BaseFragment(),
AppConfig.flVideoAdCount = data.vedioRules.fL_VEDIO.surplus AppConfig.flVideoAdCount = data.vedioRules.fL_VEDIO.surplus
AppConfig.shVideoAdCount = data.vedioRules.corAl_VIDEO.surplus AppConfig.shVideoAdCount = data.vedioRules.corAl_VIDEO.surplus
AppConfig.ksVideoAdCount = data.vedioRules.kS_VEDIO.surplus AppConfig.ksVideoAdCount = data.vedioRules.kS_VEDIO.surplus
AppConfig.rtaVideoAdCount = data.vedioRules.rtA_VEDIO.surplus
LogUtil.d(TAG, "首页视频数:csjCount:${AppConfig.csjVideoAdCount} " + LogUtil.d(TAG, "首页视频数:csjCount:${AppConfig.csjVideoAdCount} " +
"ylhCount:${AppConfig.ylhAdCount} " + "ylhCount:${AppConfig.ylhAdCount} " +
"sdhzCount:${AppConfig.wnVideoAdCount} " + "sdhzCount:${AppConfig.wnVideoAdCount} " +
......
package com.mints.fairyland.ui.widgets.wheelsruf.listener;
import android.animation.ValueAnimator;
import android.widget.ImageView;
/**
* 用于回调动画过程和结果
*/
public interface RotateListener {
/**
* 动画结束 返回当前位置 注意 位置是最上面是1 然后依次逆时针递增
*
* @param position
* @param des 所指分区文字描述
*/
void rotateEnd(int position, String des);
/**
* 动画进行中 返回动画中间量
*
* @param valueAnimator
*/
void rotating(ValueAnimator valueAnimator);
/**
* 点击了按钮 但是没有旋转 调用者可以在这里处理一些逻辑 比如弹出对话框确定用户是否要抽奖
*
* @param goImg
*/
void rotateBefore(ImageView goImg);
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="#50ffffff" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="10dip" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:wheelSurfView="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/bg_turn"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginTop="40dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="6dp"
android:src="@mipmap/ic_voice" />
<com.sunfusheng.marqueeview.MarqueeView
android:id="@+id/marqueeView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:mvAnimDuration="1000"
app:mvInterval="4000"
app:mvSingleLine="true"
app:mvTextColor="@color/color_cb4a39"
app:mvTextSize="15sp" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:src="@mipmap/bg_turn_font" />
<TextView
android:id="@+id/tvHintTurnTable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:textColor="@color/red"
android:textSize="18sp"
tools:text="每日0点重置抽奖次数" />
<com.mints.fairyland.ui.widgets.wheelsruf.view.WheelSurfView
android:id="@+id/turnTableView"
android:layout_width="330dp"
android:layout_height="330dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
wheelSurfView:typenum="-1" />
<include layout="@layout/layout_turn_btn" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<TextView
android:id="@+id/tv_turn_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="6dp"
tools:text="抽奖+1"
android:textColor="@color/red"
android:textSize="14sp" />
<ImageView
android:id="@+id/ic_turn_icon"
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_gravity="center_horizontal"
android:scaleType="fitXY"
tools:src="@mipmap/ic_launcher_main" />
<TextView
android:id="@+id/tv_turn_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
tools:text="搜索赚"
android:textColor="@color/red"
android:textSize="14sp" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginBottom="5dp"
android:background="@drawable/shape_turn_btn"
android:elevation="18dp"
android:orientation="vertical"
android:paddingTop="4dp"
android:paddingBottom="10dp">
<TextView
android:id="@+id/tvTurnTimes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="6dp"
android:textColor="@color/black"
android:textSize="12sp" />
<com.mints.fairyland.ui.widgets.ExpandableGridView
android:id="@+id/gvTurnTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="80dp"
android:divider="@null"
android:dividerHeight="10pt"
android:elevation="6dip"
android:listSelector="#00000000"
android:numColumns="4"
android:scrollbars="none"
android:stretchMode="spacingWidthUniform" />
<TextView
android:id="@+id/tvTurnMore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:drawableTop="@mipmap/ic_arrow_down"
android:drawablePadding="4dp"
android:text="点击获取更多奖励"
android:textColor="@color/red"
android:textSize="14sp"></TextView>
</LinearLayout>
\ No newline at end of file
...@@ -180,4 +180,31 @@ ...@@ -180,4 +180,31 @@
<attr name="text" format="string" /> <attr name="text" format="string" />
<attr name="radius" format="integer" /> <attr name="radius" format="integer" />
</declare-styleable> </declare-styleable>
<declare-styleable name="wheelSurfView">
<!--类型 根据类型来加载资源 1 默认类型 用户需要提供文字和图片 2 暴力模式 用户只需要提供一张圆形的用来旋转的图片-->
<attr name="type" format="integer"/>
<!--最低圈数 默认值3 也就是说每次旋转都会最少转3圈-->
<attr name="minTimes" format="integer"/>
<!--扇形的数量 也就是奖品的份数-->
<attr name="typenum" format="integer"/>
<!--每一个扇形旋转消耗的时间-->
<attr name="vartime" format="integer"/>
<!--类型为1的时候 需要提供每个扇形上面的文字描述 长度必须和typenum一致-->
<attr name="deses" format="reference"/>
<!--类型为1的时候 需要提供每个扇形上面的图片展示 长度必须和typenum一致-->
<attr name="icons" format="reference"/>
<!--类型为1的时候 需要提供每个扇形背景颜色 长度必须和typenum一致-->
<attr name="colors" format="reference"/>
<!--中间图片的引用 有默认值 不填则使用默认值-->
<attr name="goImg" format="reference"/>
<!--圆环的图片引用 有默认值 不填则使用默认值-->
<attr name="huanImg" format="reference"/>
<!--如果类型为2 此值必填-->
<attr name="mainImg" format="reference"/>
<!--文字大小-->
<attr name="textSize" format="dimension"/>
<!--文字颜色-->
<attr name="textColor" format="reference|color"/>
</declare-styleable>
</resources> </resources>
\ 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