Commit 45e6e0be authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :1.1.3
[实现方案] :加入剪切板
parent 72d4efcb
......@@ -17,6 +17,7 @@ import com.zxbw.modulemain.fragment.CashCheckFragment;
import com.zxbw.modulemain.fragment.HomeFragment;
import com.zxbw.modulemain.fragment.UserCenterFragment;
import com.zxbw.modulemain.view.NavigationBottomView;
import com.zxhl.cms.utils.ClipboardManagerUtil;
import com.zxhl.shop.R;
import com.zxhl.cms.AppContext;
import com.zxhl.cms.common.Constant;
......@@ -210,6 +211,7 @@ public class MainActivity extends BaseActivity implements NavigationBottomView.N
if (userInfoData != null&&userInfoData.member!=null) {
Constant.Switch.isOpenVip = userInfoData.member;
}
ClipboardManagerUtil.INSTANCE.getTbLink(this);
}
......
PACKAGE_NAME=com.zxhl.shop
VERSION_CODE=13
VERSION_NAME=1.1.2
\ No newline at end of file
VERSION_CODE=14
VERSION_NAME=1.1.3
\ No newline at end of file
package com.zxhl.cms.ad.upload.model
import java.io.Serializable
/**
* Created by gaoleichao on 2018/7/13.
*/
class Response2<T> {
var error: String? = ""
var msg: String? = ""
var result: String? = ""
var request_id: String? = ""
var data: T? = null
}
......@@ -193,13 +193,13 @@ public class NetConfig {
public static class H5 {
public static String WEB_URL_USER = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xiaoxiangSaveMoney/person_app.html?webName=小象省钱";
public static String WEB_URL_PRIVACY = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xiaoxiangSaveMoney/privacy_app.html?appName=小象省钱APP&company=北京志信博文科技发展有限公司&money=虚拟货币&webName=小象省钱";
public static String WEB_URL_PRIVACY = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xiaoxiangSaveMoney/privacy_app.html?appName=小象省钱APP&company=北京掌心互联科技有限公司&money=虚拟货币&webName=小象省钱";
public static String WEB_URL_ABOUT_US = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/aboutMe.html?version=" + Constant.Param.vn + "&appName=小象省钱&company=北京志信博文科技发展有限公司";
public static String WEB_URL_ABOUT_US = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/aboutMe.html?version=" + Constant.Param.vn + "&appName=小象省钱&company=北京掌心互联科技有限公司";
public static String WEB_URL_CUSTOMER_SERVICE = "https://1568685.s4.udesk.cn/im_client/?web_plugin_id=35245";
public static String WEB_URL_ZENGZHI_SERVICE = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/xxsq_zz_server.html";
public static String WEB_URL_BUYER_KNOW = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/buyerKnow.html?version=" + Constant.Param.vn + "&appName=幸运魔盒&company=北京志信博文科技发展有限公司";
public static String WEB_URL_BUYER_KNOW = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/buyerKnow.html?version=" + Constant.Param.vn + "&appName=幸运魔盒&company=北京掌心互联科技有限公司";
public static String WEB_URL_WEEK_RULE = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/week_activity_rule.html";
public static String WEB_URL_INVITE;
public static String WEB_URL_H5_PAY = "https://newspool.zhangxinhulian.com/sspapiNovel/su/custom/xingyunmohe/pay_order.html";
......
......@@ -120,12 +120,13 @@ class WebActivity : BaseActivity() {
id_activity_web_view?.webChromeClient = chromeClient
id_pay_web_view?.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
Log.e("MXL", "Download " + url)
var intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent);
}
id_activity_web_view?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(wv: WebView, url: String?): Boolean {
Log.e("MXL", "AURL" + url)
Log.e("MXL", "AURL " + url)
if (url == null) return false
try {
if (url.startsWith("weixin://") //微信
......
......@@ -6,6 +6,7 @@ import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
......@@ -20,6 +21,7 @@ import com.google.android.material.snackbar.Snackbar;
import com.zxhl.cms.AppContext;
import com.zxhl.cms.R;
import com.zxhl.cms.utils.ActivityManager;
import com.zxhl.cms.utils.ClipboardManagerUtil;
import com.zxhl.cms.utils.LogUtils;
import com.zxhl.cms.utils.StatusBarUtils;
import com.zxhl.cms.utils.Utils;
......@@ -346,6 +348,7 @@ public abstract class BaseActivity extends RxAppCompatActivity implements View.O
@Override
public void finishActivity(int requestCode) {
super.finishActivity(requestCode);
overridePendingTransition(0,0);
overridePendingTransition(0, 0);
}
}
package com.zxhl.cms.net.api
import com.zxhl.cms.ad.upload.model.Response
import com.zxhl.cms.ad.upload.model.Response2
import com.zxhl.cms.common.NetConfig
import com.zxhl.cms.net.model.box.*
import com.zxhl.cms.net.model.other.IsWeChatLoginEntity
......@@ -14,6 +15,7 @@ import com.zxhl.cms.net.model.qy.SkillEntity
import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.net.model.uc.VersionEntity
import io.reactivex.Observable
import okhttp3.ResponseBody
import retrofit2.http.*
......@@ -364,6 +366,14 @@ interface IHomeApi {
@Query("link") link: String
): Observable<Response<ConvertLinkEntity>>
/**
* 第三方转链
*
* @return
*/
@GET
fun requestUrl(@Url url: String?): Observable<Response2<TbGoodsItemEntity>>
//图文详情
@GET(NetConfig.QY.XX_GOODS_ITEM_DETAIL)
fun getGoodsImgDetail(
......
package com.zxhl.cms.net.callback;
import android.text.TextUtils;
import com.zxhl.cms.AppContext;
import com.zxhl.cms.ad.upload.model.Response;
import com.zxhl.cms.ad.upload.model.Response2;
import com.zxhl.cms.common.Constant;
import com.zxhl.cms.net.RxExceptionUtil;
import com.zxhl.cms.net.SettingPreference;
import com.zxhl.cms.utils.JumpUtils;
import com.zxhl.cms.utils.RxBus;
import com.zxhl.cms.utils.Utils;
import io.reactivex.Observer;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
/**
* Created by gaoleichao on 2018/5/5.
*/
public abstract class BaseObserver2<T> implements Observer<Response2<T>> {
private Disposable disposable;
@Override
public void onNext(@NonNull Response2<T> result) {
if (TextUtils.equals(result.getError(), "0")) {
if (result.getData() != null) {
onSuccess(result.getData());
} else {
onSuccess(null);
}
} else{
onFailure(new Exception(result.getMsg()), result.getError(), result.getMsg());//该异常可以汇报服务端
}
}
@Override
public void onError(@NonNull Throwable e) {
onFailure(e, "103", RxExceptionUtil.exceptionHandler(e));
}
@Override
public void onComplete() {
if (disposable != null && !disposable.isDisposed()) {
disposable.dispose();
}
}
@Override
public void onSubscribe(@NonNull Disposable d) {
disposable = d;
}
public abstract void onSuccess(T result);
public abstract void onFailure(Throwable e, String code, String errorMsg);
}
package com.zxhl.cms.net.model.qy
import java.io.Serializable
/**
* @author (wangXuewei)
* @detail :
*/
class ConvertLinkEntityDetail : Serializable {
var msg: String? = ""
var result: String? = ""
var data: TbGoodsItemEntity? = null
var error: String? = ""
var request_id: String? = ""
}
\ No newline at end of file
......@@ -51,6 +51,9 @@ class TbGoodsItemEntity : Serializable {
var coupon_start_time: String? = ""
var coupon_end_time: String? = ""
var global_tbk_pwd: String? = ""
var coupon_short_url: String? = ""
//BoxEntity============================================S
var id: String? = ""
......
package com.zxhl.cms.utils
import android.app.Activity
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.os.Handler
import android.util.Log
import com.zx.ad.modulecommon.net.EventApiClient
import com.zx.ad.utils.AdEventUtils
import com.zxhl.cms.common.Constant
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.callback.BaseObserver2
import com.zxhl.cms.net.model.qy.ConvertLinkEntity
import com.zxhl.cms.net.model.qy.ConvertLinkEntityDetail
import com.zxhl.cms.net.model.qy.TbGoodsEntity
import com.zxhl.cms.net.model.qy.TbGoodsItemEntity
import com.zxhl.cms.widget.CenterDialog
import io.reactivex.Observer
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import java.net.URLEncoder
/**
* @author (wangXuewei)
* @datetime 2022-06-23 11:15 GMT+8
* @detail :监测淘口令
*/
object ClipboardManagerUtil {
fun getTbLink(context: Activity) {
if (!Constant.Switch.isOpenVip) {
return
}
if (context.localClassName.contains("SplashActivity")) {
return
}
// Log.d("wxw", "activityName" + context.localClassName)
Handler().postDelayed({
// 获取系统剪贴板
var clipboard: ClipboardManager =
context.application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager;
// Log.d("wxw", "hasPrimaryClip " + clipboard.hasPrimaryClip())
if (clipboard.hasPrimaryClip()) {
// 返回数据
var clipData: ClipData? = clipboard.primaryClip
if (clipData != null && clipData.itemCount > 0) {
// 从数据集中获取(粘贴)第一条文本数据
var textStr = clipData.getItemAt(0).text.toString()
Log.d("wxw", "textStr" + textStr)
if (textStr.length > 10) {
if (textStr != copyLink){
getGoodsGuideLink(context, textStr)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.P) {
clipboard.clearPrimaryClip()
} else {
try {
clipData = ClipData.newPlainText(null, null)
clipboard.setPrimaryClip(clipData)
} catch (e: Exception) {
}
}
}
}
} else {
Log.d("wxw", "无内容")
}
}
}, 200)
}
//获取商品详情
fun getGoodsGuideLink(context: Activity, str: String) {
// val encode = URLEncoder.encode(str)
// Log.d("wxw","urlCode : ${encode}")
var url =
"http://api.vephp.com/hcapi?vekey=V00006899Y22696189&para=${URLEncoder.encode(str)}&detail=1";
ApiClient.homeApi.requestUrl(url)
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver2<TbGoodsItemEntity>() {
override fun onSuccess(result: TbGoodsItemEntity?) {
if (result != null) {
copy(context,result.global_tbk_pwd?:"")
CenterDialog.showTbGoodsDetail(
context,
result
)
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
}
private var copyLink = ""
fun copy(context: Activity,string: String) {
if (string.isNullOrEmpty()){
return
}
copyLink = string
Log.d("wxw", "copyLink ${copyLink}")
//获取剪贴板管理器:
val cm: ClipboardManager =
context?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val mClipData: ClipData =
ClipData.newPlainText("Label", string)
cm.setPrimaryClip(mClipData)
}
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.content.Intent;
import android.util.Log;
import com.zxhl.cms.AppContext;
import com.zxhl.cms.net.model.qy.TbGoodsItemEntity;
import com.zxhl.cms.router.RounterApi;
import com.zxhl.cms.router.RounterBus;
......@@ -53,10 +54,11 @@ public class JumpUtils {
}
//tb商品详情
public static void TbGoodsDetailJump() {
public static void TbGoodsDetailJump(TbGoodsItemEntity goodsItemEntity) {
try {
Intent intent = RounterBus.getRounter(RounterApi.class).getIntentTbGoodsDetail();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("goods", goodsItemEntity);
AppContext.get().startActivity(intent);
} catch (Exception e) {
Utils.showToast(AppContext.get(), "该版本暂不支持,请更新版本!");
......
......@@ -4,8 +4,9 @@ import android.app.Activity
import android.app.Dialog
import android.content.ClipboardManager
import android.content.Context
import android.graphics.Bitmap
import android.content.Intent
import android.graphics.Color
import android.graphics.Paint
import android.graphics.Typeface
import android.os.Build
import android.text.Html
......@@ -17,26 +18,22 @@ import android.text.style.ClickableSpan
import android.text.style.ForegroundColorSpan
import android.view.Gravity
import android.view.View
import android.view.ViewTreeObserver
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.SimpleTarget
import com.bumptech.glide.request.transition.Transition
import com.umeng.analytics.MobclickAgent
import com.umeng.socialize.bean.SHARE_MEDIA
import com.zxhl.cms.AppContext
import com.zxhl.cms.R
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.NetConfig
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.other.ExitData
import com.zxhl.cms.net.model.video.MemberEntity
import com.zxhl.cms.net.model.qy.TbGoodsItemEntity
import com.zxhl.cms.router.RounterApi
import com.zxhl.cms.router.RounterBus
import com.zxhl.cms.umeng.UmengCountConfig
import com.zxhl.cms.umeng.UmengShareUtils
import com.zxhl.cms.utils.JumpUtils
......@@ -431,7 +428,11 @@ object CenterDialog {
/**
* 隐私协议弹窗
*/
fun showPrivacyProtocol(activity: Activity, listener: View.OnClickListener?, rightListener: View.OnClickListener?) {
fun showPrivacyProtocol(
activity: Activity,
listener: View.OnClickListener?,
rightListener: View.OnClickListener?
) {
val mDialog = Dialog(activity, R.style.UpdateVersionCompatDialogTheme)
val mDialogView =
showBottomDialog(
......@@ -442,13 +443,13 @@ object CenterDialog {
Gravity.CENTER
)
val desc = mDialogView.findViewById<TextView>(R.id.id_dialog_privacy_protocol_desc)
var i=0;
var i = 0;
mDialogView.findViewById<TextView>(R.id.cancel_button).setOnClickListener {
if (i<1){
if (i < 1) {
val toast = Toast.makeText(AppContext.get(), "您继续同意提示内容方可使用本软件", Toast.LENGTH_LONG)
toast?.setGravity(Gravity.BOTTOM, 0, 0)
toast?.show()
}else{
} else {
rightListener?.onClick(it)
}
i++;
......@@ -526,7 +527,7 @@ object CenterDialog {
var mAppConfig = SettingPreference.getConfig()
var desc = mDialogView.findViewById<TextView>(R.id.id_tv_tips_desc)
if (mAppConfig!=null){
if (mAppConfig != null) {
desc.text = Html.fromHtml("${mAppConfig.risk_text}")
}
......@@ -538,5 +539,64 @@ object CenterDialog {
mDialog.setCancelable(true)
mDialog.show()
}
private var mTbDialog:Dialog?=null;
//淘口令
fun showTbGoodsDetail(context: Activity, goods: TbGoodsItemEntity) {
if (context.isFinishing) {
return
}
if (goods.zk_final_price.isNullOrEmpty()) {
return
}
if (mTbDialog!=null){
if (mTbDialog?.isShowing!!){
mTbDialog?.dismiss()
}
}
mTbDialog = Dialog(context, R.style.CenterCompatDialogTheme)
val mDialogView =
showBottomDialog(
R.layout.dialog_layout_tb_goods_guide,
context,
mTbDialog!!,
0,
Gravity.CENTER
)
var desc = mDialogView.findViewById<TextView>(R.id.id_tv_quan_desc)
var goodsImg = mDialogView.findViewById<RecycleImageView>(R.id.id_img_goods_main_img)
var name = mDialogView.findViewById<TextView>(R.id.id_tv_goods_name)
var youhuiquan = mDialogView.findViewById<TextView>(R.id.id_tv_quan_amount)
var price = mDialogView.findViewById<TextView>(R.id.id_tv_goods_price)
var old_price = mDialogView.findViewById<TextView>(R.id.id_tv_goods_old_price)
if (goods.pict_url?.startsWith("//img") == true) {
goodsImg.setLoadImageUrl("https:" + goods.pict_url, 0, 5)
} else {
goodsImg.setLoadImageUrl(goods.pict_url, 0, 5)
}
name.text = "${goods.title}"
if(goods.coupon_amount.isNullOrEmpty()){
desc.text = "可领¥ 0元优惠券"
youhuiquan.text = "0元"
}else{
desc.text = "可领¥ ${goods.coupon_amount}元优惠券"
youhuiquan.text = "${goods.coupon_amount?:"0"}元"
}
old_price.text = "¥ ${goods.zk_final_price}元"
old_price.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
var z_price = goods.zk_final_price?.toDoubleOrNull() ?: 0.0
var c_price = goods.coupon_amount?.toDoubleOrNull() ?: 0.0
price.text = "¥ ${Utils.getNoMoreThanTwoDigits(Utils.sub(z_price, c_price))}"
mDialogView.findViewById<ImageView>(R.id.id_img_btn_receive).setOnClickListener {
mTbDialog?.dismiss()
JumpUtils.TbGoodsDetailJump(goods)
}
mTbDialog?.setCanceledOnTouchOutside(false)
mTbDialog?.setCancelable(true)
mTbDialog?.show()
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EDD49D" />
<corners android:radius="5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="18dp"
android:layout_marginRight="18dp"
android:background="@drawable/shape_white_r10"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="检测到您自己的淘宝口令"
android:textColor="@color/color_333333"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_quan_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/shape_edd49d_r5"
android:includeFontPadding="false"
android:paddingLeft="5dp"
android:paddingTop="3dp"
android:paddingRight="5dp"
android:paddingBottom="3dp"
android:text="可领¥ 50元优惠券"
android:textColor="#A85C00"
android:textSize="16sp"
android:textStyle="bold" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="#F2F2F2"
android:padding="10dp">
<com.zxhl.cms.widget.RecycleImageView
android:id="@+id/id_img_goods_main_img"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginEnd="10dp"
android:background="@drawable/shape_white_r6" />
<TextView
android:id="@+id/id_tv_goods_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_toEndOf="@id/id_img_goods_main_img"
android:maxLines="2"
android:ellipsize="end"
android:text=""
android:textColor="@color/color_333333"
android:textSize="16sp" />
<LinearLayout
android:id="@+id/id_ll_quan_view"
android:layout_width="78dp"
android:layout_height="wrap_content"
android:layout_below="@id/id_tv_goods_name"
android:layout_marginBottom="10dp"
android:layout_toEndOf="@id/id_img_goods_main_img"
android:background="@drawable/icon_quan_bg"
android:orientation="horizontal">
<View
android:layout_width="30dp"
android:layout_height="1dp" />
<TextView
android:id="@+id/id_tv_quan_amount"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:includeFontPadding="false"
android:text="50元"
android:textColor="#EB602D"
android:textSize="14sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_ll_quan_view"
android:layout_toEndOf="@id/id_img_goods_main_img"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="券后 "
android:textColor="@color/color_999999"
android:textSize="14sp" />
<TextView
android:id="@+id/id_tv_goods_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="¥ 5398.00"
android:layout_marginRight="6dp"
android:textColor="@color/color_333333"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_goods_old_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="¥ 5398.00"
android:textColor="@color/color_999999"
android:textSize="12sp" />
</LinearLayout>
</RelativeLayout>
<ImageView
android:id="@+id/id_img_btn_receive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:src="@drawable/button_qulingquan" />
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
......@@ -95,7 +95,6 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View,
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
Log.d("wxw", "newIntent")
if (intent != null) {
goodsDetail = intent.getSerializableExtra("goods") as TbGoodsItemEntity
refreshData()
......@@ -122,8 +121,8 @@ class TbGoodsDetailActivity : BaseActivity(), TbGoodsDetailContract.View,
id_tv_xx_price?.text = "${goodsDetail?.zk_final_price}"
id_tv_vip_buy_price?.text = "${goodsDetail?.zk_final_price}"
} else {
var r_price = goodsDetail?.zk_final_price?.toDoubleOrNull() ?: 0 as Double
var c_price = goodsDetail?.coupon_amount?.toDoubleOrNull() ?: 0 as Double
var r_price = goodsDetail?.zk_final_price?.toDoubleOrNull() ?: 0.0
var c_price = goodsDetail?.coupon_amount?.toDoubleOrNull() ?: 0.0
var vipPrice = Utils.getNoMoreThanTwoDigits(
Utils.sub(
r_price,
......
......@@ -52,8 +52,8 @@ class GoodsListAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, GoodsListAdapter
}else{
holder.id_tv_yhq_value?.visibility =View.VISIBLE
holder.id_tv_yhq_value?.text = "${bean.coupon_amount}元券"
var r_price = bean.zk_final_price?.toDoubleOrNull() ?: 0 as Double
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0 as Double
var r_price = bean.zk_final_price?.toDoubleOrNull() ?: 0.0
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0.0
holder.id_tv_goods_price?.text = Utils.getNoMoreThanTwoDigits(
Utils.sub(
r_price,
......
......@@ -42,7 +42,6 @@ class HomeQyBannerAdapter : PagerAdapter {
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val data = mViewList[position]
Log.d("wxw", "data${data.size}")
val view =
LayoutInflater.from(mActivity).inflate(R.layout.item_layout_home_qy_grid_view, null)
val grid_view = view.findViewById<RecyclerView>(R.id.id_rcl_home_jgq_qy_grid_list)
......
......@@ -103,8 +103,8 @@ class HomeRecommendAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, RecyclerView
} else {
holder.id_tv_yhq_value?.visibility = View.VISIBLE
holder.id_tv_yhq_value?.text = "${bean.coupon_amount}元券"
var z_price = bean.zk_final_price?.toDoubleOrNull() ?: 0 as Double
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0 as Double
var z_price = bean.zk_final_price?.toDoubleOrNull() ?: 0.0
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0.0
holder.id_tv_goods_price?.text = Utils.getNoMoreThanTwoDigits(
Utils.sub(
z_price,
......@@ -150,7 +150,6 @@ class HomeRecommendAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, RecyclerView
}
}
}
Log.d("wxw", "resultSize${result.size}")
var mQyBannerAdapter = HomeQyBannerAdapter(result, mContext)
holder.qy_vp?.adapter = mQyBannerAdapter;
mQyBannerAdapter.notifyDataSetChanged()
......@@ -187,8 +186,8 @@ class HomeRecommendAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, RecyclerView
holder.box_price?.text = bean.onePriceStr
holder.box_old_price?.text = "¥ ${bean.originalPrice}"
holder.box_old_price?.paint?.flags = Paint.STRIKE_THRU_TEXT_FLAG
var a_price = bean.originalPrice?.toDoubleOrNull() ?: 0 as Double
var b_price = bean.onePriceStr?.toDoubleOrNull() ?: 0 as Double
var a_price = bean.originalPrice?.toDoubleOrNull() ?: 0.0
var b_price = bean.onePriceStr?.toDoubleOrNull() ?: 0.0
holder.box_discount_desc?.text =
"已减${Utils.getNoMoreThanTwoDigits(Utils.sub(a_price, b_price))}元"
......
......@@ -53,8 +53,8 @@ class SearchGoodsTopAdapter :
if (bean.coupon_amount.isNullOrEmpty()) {
holder.id_tv_goods_price?.text = "${bean.zk_final_price}"
} else {
var r_price = bean.zk_final_price?.toDoubleOrNull() ?: 0 as Double
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0 as Double
var r_price = bean.zk_final_price?.toDoubleOrNull() ?: 0.0
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0.0
holder.id_tv_goods_price?.text = Utils.getNoMoreThanTwoDigits(
Utils.sub(
r_price,
......
......@@ -45,8 +45,8 @@ class SearchReslutAdapter : BaseRecyclerAdapter<TbGoodsItemEntity, SearchReslutA
} else {
holder.id_tv_yhq_value?.visibility = View.VISIBLE
holder.id_tv_yhq_value?.text = "${bean.coupon_amount}元券"
var z_price = bean.zk_final_price?.toDoubleOrNull() ?: 0 as Double
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0 as Double
var z_price = bean.zk_final_price?.toDoubleOrNull() ?: 0.0
var c_price = bean.coupon_amount?.toDoubleOrNull() ?: 0.0
holder.id_tv_goods_price?.text = Utils.getNoMoreThanTwoDigits(
Utils.sub(
z_price,
......
......@@ -3,6 +3,8 @@ package com.zxbw.modulemain.fragment
import android.view.View
import com.zxbw.modulemain.R
import com.zxhl.cms.common.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_layout_cash_check.*
import me.jessyan.autosize.utils.ScreenUtils
/**
* @author (wangXuewei)
......@@ -13,7 +15,11 @@ class CashCheckFragment : BaseFragment() {
override fun layoutID(): Int = R.layout.fragment_layout_cash_check
override fun init(view: View?) {
var statusBarHeight = ScreenUtils.getStatusBarHeight()
if (statusBarHeight <= 0) {
statusBarHeight = 40
}
id_sys_bar_view.layoutParams.height = statusBarHeight
}
}
\ No newline at end of file
......@@ -19,8 +19,10 @@ import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.other.IsWeChatLoginEntity
import com.zxhl.cms.net.model.qy.ConvertLinkEntityDetail
import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.utils.*
import com.zxhl.cms.widget.CenterDialog
import io.reactivex.Observable
import io.reactivex.ObservableOnSubscribe
import io.reactivex.Observer
......@@ -90,114 +92,23 @@ class SplashPresenter : SplashContract.Presenter {
// }
// }
// })
checkLoginIsBind()
}
override fun checkLogin() {
val user = SettingPreference.getUserInfoData()
val token = SettingPreference.getUserToken()
if (user == null && TextUtils.isEmpty(token)) {
if (TextUtils.equals(Utils.getChannel(AppContext.get()), "baichuan")) {
// deviceLogin()
getAds()
} else {
deviceLogin()
}
} else {
UserDataUtils.updateUserInfo(null)
getAds()
}
}
private fun deviceLogin() {
ApiClient.userInfoAPi.deviceLogin().compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<UserInfo>() {
override fun onSuccess(result: UserInfo) {
val token = result.token
SettingPreference.saveToken(token)
UserDataUtils.updateUserInfo(null)
// mView?.jumpMainPage()
getAds()
}
override fun onFailure(e: Throwable, code: String, errorMsg: String) {
SettingPreference.saveToken("")
SettingPreference.saveUserInfo(null)
getAds()
}
})
}
}
private fun getAds() {
checkLoginIsBind()
ApiClient.adApi.getAds("splash")
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<List<NewsEntity>>() {
override fun onSuccess(result: List<NewsEntity>) {
if (result != null && result?.size > 0) {
val data = result[0]
if (TextUtils.equals(data.adPlatform, "chuanshanjia")) {
loadToutiao(data, 0, "splash")
}
} else {
mView.jumpMainPage()
}
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
mView.jumpMainPage()
}
})
}
private var mTTAdNative: TTAdNative? = null
private fun loadToutiao(data: NewsEntity, count: Int, slotNameL: String) {
mTTAdNative = TTAdSdk.getAdManager().createAdNative(mActivity)//baseContext建议为activity
val adSlot = AdSlot.Builder()
.setCodeId(data?.codeId)
.setSupportDeepLink(true)
.setImageAcceptedSize(
PhoneUtils.getScreenWidth(AppContext.get()),
PhoneUtils.getScreenHeight(AppContext.get())
)
.build()
mTTAdNative?.loadSplashAd(adSlot, object : TTAdNative.SplashAdListener {
override fun onError(i: Int, s: String) {
mView.jumpMainPage()
}
override fun onTimeout() {
mView.jumpMainPage()
}
override fun onSplashAdLoad(ad: TTSplashAd) {
val view = ad.splashView
// mView?.setToutiaoView(view)
ad.setSplashInteractionListener(object : TTSplashAd.AdInteractionListener {
override fun onAdClicked(view: View, i: Int) {
EventUtils.onEvent("splash_click")
AdUpload.onAdClick(data)
}
override fun onAdShow(view: View, i: Int) {
EventUtils.onEvent("splash_show")
AdUpload.onAdImpression(data)
}
override fun onAdSkip() {
mView.jumpMainPage()
}
override fun onAdTimeOver() {
mView.jumpMainPage()
}
})
}
}, 5000)
}
private fun checkLoginIsBind() {
ApiClient.homeApi.isWxLogin().compose(RxSchedulers.observableIO2Main())
......@@ -211,23 +122,7 @@ class SplashPresenter : SplashContract.Presenter {
}
})
getAppInfo()
}
private fun getAppInfo() {
ApiClient.homeApi.getAppInfo()
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AppInEntity>() {
override fun onSuccess(result: AppInEntity?) {
Constant.Switch.isOpenLogin = result?.login.equals("1")
Constant.Switch.isOpenPayTips = result?.risk_open.equals("1")
SettingPreference.saveConfig(result)
}
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
}
})
// getAppInfo()
}
}
\ No newline at end of file
......@@ -2,7 +2,50 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F3F4F5"
android:gravity="center_horizontal"
android:background="@color/white"
android:orientation="vertical">
<View
android:id="@+id/id_sys_bar_view"
android:layout_width="match_parent"
android:layout_height="40dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_sys_bar_view"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:layout_marginBottom="4dp"
android:text="赚钱大厅"
android:textColor="@color/color_333333"
android:textSize="20sp"
android:textStyle="bold" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/id_img_anim_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/image_xiaoxiangbi_anim" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon_daicaihongbao" />
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
\ No newline at end of file
......@@ -33,6 +33,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:visibility="gone"
android:drawableTop="@drawable/icon_bottom_cash_default"
android:drawablePadding="2dp"
android:textStyle="bold"
......
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