Commit 84269236 authored by 王雪伟's avatar 王雪伟

Merge remote-tracking branch 'origin/master'

parents fccddfc3 4af73df1
......@@ -31,6 +31,7 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 用于写入缓存数据到扩展存储卡 -->
<!--必要权限,解决安全风险漏洞,发送和注册广播事件需要调用带有传递权限的接口-->
<permission
......
......@@ -21,7 +21,6 @@ import com.zxhl.cms.R
import com.zxhl.cms.utils.OpenFiles
import com.zxhl.cms.utils.UpdateCallback
import com.zxhl.cms.utils.Utils
import com.zxhl.cms.utils.WeChatLoginSuccessCallBall
import com.zxhl.cms.widget.CenterDialog
......@@ -31,10 +30,11 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
private val mActivity: Activity
private var mProgress: ProgressBar? = null
private var mDownloadDialog: Dialog? = null
private var callBack: UpdateCallback?=null
constructor(mActivity: Activity,callBack: UpdateCallback?) {
private var callBack: UpdateCallback? = null
constructor(mActivity: Activity, callBack: UpdateCallback?) {
this.mActivity = mActivity
this.callBack=callBack
this.callBack = callBack
mPresenter = UpdateVersionPresenter(this)
}
......@@ -45,19 +45,41 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
override fun showMandatoryUpdateDialog(title: String, desc: String) {
var isShowLoginDialog = true
CenterDialog.showDialogUpdateVersion(mActivity, title, desc, false, isShowLoginDialog, View.OnClickListener {
callBack?.CheckUpate(true)
})
CenterDialog.showDialogUpdateVersion(
mActivity,
title,
desc,
false,
isShowLoginDialog,
View.OnClickListener {
callBack?.CheckUpate(true)
},
View.OnClickListener {
showDownloadDialog()
mPresenter.downloadApk()
})
}
//非强制
override fun showNonMandatoryUpdateDialog(title: String, desc: String) {
var isShowLoginDialog = true
CenterDialog.showDialogUpdateVersion(mActivity, title, desc, true, isShowLoginDialog, View.OnClickListener {
callBack?.CheckUpate(true)
})
CenterDialog.showDialogUpdateVersion(
mActivity,
title,
desc,
true,
isShowLoginDialog,
View.OnClickListener {
callBack?.CheckUpate(true)
},
View.OnClickListener {
showDownloadDialog()
mPresenter.downloadApk()
})
}
override fun onClick(p0: View?) {
Log.e("MXL", "开始下载")
showDownloadDialog()
mPresenter.downloadApk()
}
......@@ -77,28 +99,29 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
override fun onDownloadComplete(path: String) {
mPresenter.unsubscribe()
mDownloadDialog?.dismiss()
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// var hasInstallPermission = isHasInstallPermissionWithO(mActivity)
// if (!hasInstallPermission) {
// startInstallPermissionSettingActivity(mActivity)
// } else {
// val dManager = AppContext.get().getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
// var downloadFileUri = dManager.getUriForDownloadedFile(path.toLong())
// OpenFiles.openFile(getRealFilePath(AppContext.get(), downloadFileUri))
// }
// } else {
val dManager = AppContext.get().getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
Log.e("MXL","下载完成")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
var hasInstallPermission = isHasInstallPermissionWithO(mActivity)
if (!hasInstallPermission) {
startInstallPermissionSettingActivity(mActivity)
} else {
val dManager =
AppContext.get().getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
var downloadFileUri = dManager.getUriForDownloadedFile(path.toLong())
OpenFiles.openFile(getRealFilePath(AppContext.get(), downloadFileUri))
}
} else {
val dManager =
AppContext.get().getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
var downloadFileUri = dManager.getUriForDownloadedFile(path.toLong())
OpenFiles.openFile(getRealFilePath(AppContext.get(), downloadFileUri))
// }
}
}
@RequiresApi(api = Build.VERSION_CODES.O)
fun isHasInstallPermissionWithO( context:Context):Boolean {
fun isHasInstallPermissionWithO(context: Context): Boolean {
if (context == null) {
return false;
}
......@@ -111,7 +134,7 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
* @param context
*/
@RequiresApi(api = Build.VERSION_CODES.O)
fun startInstallPermissionSettingActivity( context:Context) {
fun startInstallPermissionSettingActivity(context: Context) {
if (context == null) {
return
}
......@@ -120,9 +143,8 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
}
override fun onDownloadProgress(total: Long, current: Long) {
Log.e("MXL","current:"+current)
Log.e("MXL", "current:" + current)
mProgress?.progress = current.toInt()
}
......@@ -135,7 +157,8 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
else if (ContentResolver.SCHEME_FILE.equals(scheme)) {
data = uri.getPath()!!
} else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
var cursor = context.getContentResolver().query(uri, arrayOf(MediaStore.Images.ImageColumns.DATA), null, null, null);
var cursor = context.getContentResolver()
.query(uri, arrayOf(MediaStore.Images.ImageColumns.DATA), null, null, null);
if (null != cursor) {
if (cursor.moveToFirst()) {
val index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA)
......@@ -156,7 +179,7 @@ class UpdateVersionManager : UpdateVersionContract.View, View.OnClickListener {
// 构造软件下载对话框
val builder = AlertDialog.Builder(mActivity)
builder.setTitle("正在更新")
builder.setTitle("下载中")
// 给下载对话框增加进度条
val inflater = LayoutInflater.from(mActivity)
val v = inflater.inflate(R.layout.softupdate_progress, null)
......
......@@ -7,6 +7,7 @@ import android.net.Uri
import android.os.Build
import android.os.Environment
import android.text.TextUtils
import android.util.Log
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.Constant
import com.zxhl.cms.net.ApiClient
......@@ -114,10 +115,8 @@ class UpdateVersionPresenter : UpdateVersionContract.Presenter {
mView?.onNoUpdate()
}
}
}else {
if (isShowToast) {
mView?.onNoUpdate()
}
}else{
mView?.onNoUpdate()
}
}
......
......@@ -9,6 +9,7 @@ import com.zxhl.cms.common.Constant;
import com.zxhl.cms.net.RxExceptionUtil;
import com.zxhl.cms.router.RounterApi;
import com.zxhl.cms.router.RounterBus;
import com.zxhl.cms.utils.JumpUtils;
import com.zxhl.cms.utils.RxBus;
import com.zxhl.cms.utils.Utils;
import com.zxhl.cms.net.SettingPreference;
......@@ -37,6 +38,7 @@ public abstract class BaseObserver<T> implements Observer<Response<T>> {
String token = SettingPreference.getUserToken();
SettingPreference.saveToken("");
SettingPreference.saveUserInfo(null);
JumpUtils.loginJump();
RxBus.get().post(Constant.REFRESH_LOGIN_STATS,1);
Utils.showToast(AppContext.get(), "登录失效,请重新登录");
} else if (TextUtils.equals(result.getStatus(), "160")) {
......
......@@ -275,4 +275,7 @@ interface RounterApi {
@RounterUri(Constant.scheme + "://topayskill")
fun getIntentToPaySkill(): Intent
@RounterUri(Constant.scheme + "://paysucess")
fun getIntentPaySuccessSkill(): Intent
}
\ No newline at end of file
......@@ -450,4 +450,13 @@ public class JumpUtils {
Utils.showToast(AppContext.get(), "该版本暂不支持,请更新版本!");
}
}
public static void PaySuceessJump() {
try {
Intent intent = RounterBus.getRounter(RounterApi.class).getIntentPaySuccessSkill();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
AppContext.get().startActivity(intent);
} catch (Exception e) {
Utils.showToast(AppContext.get(), "该版本暂不支持,请更新版本!");
}
}
}
......@@ -227,7 +227,8 @@ object CenterDialog {
desc: String,
isCancel: Boolean,
isShowLoginDialog: Boolean,
listener: View.OnClickListener
listener: View.OnClickListener,
listener2: View.OnClickListener,
) {
val mDialog = Dialog(activity, R.style.UpdateVersionCompatDialogTheme)
val mDialogView =
......@@ -255,7 +256,7 @@ object CenterDialog {
mDialogView.findViewById<TextView>(R.id.id_dialog_update_version_title).text = "版本${title}"
mDialogView.findViewById<TextView>(R.id.id_dialog_update_version_desc).text = desc
mDialogView.findViewById<TextView>(R.id.id_dialog_update_version_btn)
.setOnClickListener(listener)
.setOnClickListener(listener2)
mDialog.show()
}
......
......@@ -39,7 +39,6 @@
android:id="@+id/id_dialog_update_version_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/id_dialog_update_version_btn"
android:layout_below="@+id/id_dialog_update_version_title"
android:layout_centerHorizontal="true"
android:layout_marginLeft="19dp"
......
......@@ -310,6 +310,17 @@
android:scheme="xxsq" />
</intent-filter>
</activity>
<activity android:name=".activity.PaySuccessActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="paysucess"
android:scheme="xxsq" />
</intent-filter>
</activity>
</application>
......
......@@ -238,6 +238,8 @@ class CardDetailActivity : BaseActivity(), CardDetailContract.View {
isClickPayBtn = false
SettingPreference.setOutTradeNo("")
showResultLoading(true)
finish()
JumpUtils.PaySuceessJump()
}
override fun verifyOrderFail(errorMsg: String) {
......@@ -248,7 +250,7 @@ class CardDetailActivity : BaseActivity(), CardDetailContract.View {
private fun showResultLoading(isPaySuc: Boolean) {
if (isPaySuc) {
mLoading?.setResult(true, "支付成功", 1000)
finish()
} else {
mLoading?.setResult(false, "支付失败", 1000)
}
......
package com.zxbw.modulemain.activity
import android.view.View
import com.zxbw.modulemain.R
import com.zxhl.cms.AppContext
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.utils.JumpUtils
import kotlinx.android.synthetic.main.layout_pay_suc.*
class PaySuccessActivity:BaseActivity() {
override fun onClick(v: View?) {
}
override fun before() {
super.before()
setStatusBarBackground(AppContext.get().resources.getColor(R.color.transparent))
}
override fun layoutID(): Int {
return R.layout.layout_pay_suc
}
override fun init() {
id_tv_btn_order?.setOnClickListener {
JumpUtils.MyOrderJump("")
finish()
}
}
}
\ No newline at end of file
......@@ -112,9 +112,9 @@ class RightsDetailActivity : BaseActivity(), RightsDetailContract.View, RightsPa
gotoBuy()
}
id_tv_btn_order -> {
JumpUtils.MyOrderJump("")
finish()
}
JumpUtils.MyOrderJump("")
finish()
}
id_img_close_pay_web -> {
id_rl_h5_pay_view?.visibility = View.GONE
}
......
......@@ -27,6 +27,9 @@ class SettingActivity : BaseActivity() {
}
override fun init() {
id_img_back?.setOnClickListener {
finish()
}
val user = SettingPreference.getUserInfoData()
if (user == null) {
return
......
......@@ -346,6 +346,9 @@ class SkillShopActivity : BaseActivity(), CardDetailContract.View {
isClickPayBtn = false
SettingPreference.setOutTradeNo("")
showResultLoading(true)
finish()
JumpUtils.PaySuceessJump()
}
override fun verifyOrderFail(errorMsg: String) {
......@@ -356,7 +359,7 @@ class SkillShopActivity : BaseActivity(), CardDetailContract.View {
private fun showResultLoading(isPaySuc: Boolean) {
if (isPaySuc) {
mLoading?.setResult(true, "支付成功", 1000)
finish()
} else {
mLoading?.setResult(false, "支付失败", 1000)
}
......
......@@ -170,13 +170,22 @@ class ToPaySkillGoodsActivity : BaseActivity(), CardDetailContract.View {
}
fun topay() {
val phoneNumber = id_edit_phone.text.toString().trim { it <= ' ' }
if (phoneNumber.isEmpty()) {
showToast("请输入要兑换的手机号")
return
}
if (phoneNumber.length < 11) {
showToast("请检查要兑换的手机号")
return
}
isClickPayBtn = true
mLoading?.setLoading("请稍后...")
mLoading?.show()
mPayPresenter?.requestRightsAliPay(
goodsID.toString(),
pay_type.toString(),
"",
phoneNumber,
"50",
skill,
outTradeNo
......@@ -235,6 +244,8 @@ class ToPaySkillGoodsActivity : BaseActivity(), CardDetailContract.View {
override fun verifyOrderSuc(order: String) {
isClickPayBtn = false
SettingPreference.setOutTradeNo("")
finish()
JumpUtils.PaySuceessJump()
showResultLoading(true)
}
......@@ -246,7 +257,6 @@ class ToPaySkillGoodsActivity : BaseActivity(), CardDetailContract.View {
private fun showResultLoading(isPaySuc: Boolean) {
if (isPaySuc) {
mLoading?.setResult(true, "支付成功", 1000)
finish()
} else {
mLoading?.setResult(false, "支付失败", 1000)
}
......
......@@ -69,7 +69,7 @@ class FlashSaleAdapter : BaseRecyclerAdapter<SkillGoodsEntity, FlashSaleAdapter.
holder.id_tv_yuanjia?.text = "${bean.card?.originPrice}"
} else {
holder.id_img_member_bg?.setLoadImageUrl(bean.goods?.mainImage, false)
holder.id_img_member_bg?.setLoadImageUrl(bean.icon, false)
holder.id_tv_name?.text = "${bean.goods?.productName}"
holder.id_tv_sale_price?.text = "${bean.skillPrice}"
holder.id_tv_yuanjia?.text = "${bean.goods?.originalPriceDb}"
......
......@@ -35,12 +35,12 @@ class MoreDiscountAdapter : BaseRecyclerAdapter<SkillGoodsEntity, MoreDiscountAd
holder.id_tv_name?.text =
"${bean.card?.brand}${bean.card?.category}${bean.card?.goodsName}"
holder.id_tv_sale_price?.text = "${bean.card?.originPrice}"
holder.id_tv_activity_price?.text = "¥${bean.card?.skillPrice}"
holder.id_tv_activity_price?.text = "¥${bean.card?.salePrice}"
} else {
holder.id_img_member_bg?.setLoadImageUrl(bean.goods?.mainImage, false)
holder.id_tv_name?.text = "${bean.goods?.productName}"
holder.id_tv_sale_price?.text = "${bean.goods?.originalPriceDb}"
holder.id_tv_activity_price?.text = "¥${bean.skillPrice}"
holder.id_tv_activity_price?.text = "¥${bean.card?.salePrice}"
}
holder.id_ll_item?.setOnClickListener {
......
package com.zxbw.modulemain.fragment
import android.graphics.Color
import android.util.Log
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper
import androidx.viewpager.widget.ViewPager
import com.flyco.tablayout.listener.OnTabSelectListener
import com.zxbw.modulemain.R
import com.zxbw.modulemain.adapter.DetailBannerAdapter
import com.zxbw.modulemain.adapter.HomeBannerAdapter
import com.zxbw.modulemain.contract.HomeContract
import com.zxbw.modulemain.presenter.HomePresenter
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.FragmentAdapter
import com.zxhl.cms.common.NetConfig
import com.zxhl.cms.common.base.BaseFragment
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.down.UpdateVersionManager
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.box.TabEntity
import com.zxhl.cms.net.model.qy.HomeBannerEntity
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.OnRecycleItemClickListener
import com.zxhl.cms.utils.UpdateCallback
import com.zxhl.cms.utils.Utils
import kotlinx.android.synthetic.main.activity_layout_tb_goods_detail.*
import kotlinx.android.synthetic.main.fragment_layout_home.*
......@@ -34,7 +25,7 @@ import me.jessyan.autosize.utils.ScreenUtils
/**
* Created by gaoleichao on 2021/10/25
*/
class HomeFragment : BaseFragment(), HomeContract.View {
class HomeFragment : BaseFragment(), HomeContract.View, UpdateCallback {
private var mPresenter: HomePresenter? = null
private var mBannerAdapter: HomeBannerAdapter? = null//Banner
override fun layoutID(): Int {
......@@ -51,6 +42,8 @@ class HomeFragment : BaseFragment(), HomeContract.View {
}
override fun init(view: View?) {
val updateVersionManager = this?.let { it1 -> UpdateVersionManager(mActivity, this) }
updateVersionManager?.checkUpdate(true)
var statusBarHeight = ScreenUtils.getStatusBarHeight()
if (statusBarHeight <= 0) {
statusBarHeight = 40;
......@@ -146,5 +139,9 @@ class HomeFragment : BaseFragment(), HomeContract.View {
}
override fun CheckUpate(boolean: Boolean) {
}
}
\ No newline at end of file
......@@ -45,7 +45,6 @@ class UserCenterFragment : BaseFragment(), AdCallback<String> {
// JumpUtils.webJump("关于我们", NetConfig.H5.WEB_URL_ABOUT_US)
}
id_ll_login_out?.setOnClickListener {
showToast("1")
DialogUtils.showDeleteUserIdTips(mActivity) {
deleteUser()
}
......
......@@ -85,6 +85,7 @@
android:textStyle="bold" />
<EditText
android:id="@+id/id_edit_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
......
......@@ -19,7 +19,7 @@
android:layout_marginTop="48dp"
android:padding="16dp"
android:src="@drawable/icon_close_login"
android:visibility="visible" />
android:visibility="invisible" />
<TextView
android:layout_width="wrap_content"
......
......@@ -402,9 +402,8 @@
android:textColor="@color/color_333333"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/id_ll_aboutus"
android:id="@+id/id_ll_my_warehouse"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -415,17 +414,18 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dp"
android:src="@drawable/icon_guanyuwomen" />
android:src="@drawable/icon_wodecangku" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关于我们"
android:text="我的仓库"
android:textColor="@color/color_333333"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/id_ll_xieyi_zhengze"
android:layout_width="0dp"
......@@ -477,9 +477,8 @@
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/id_ll_my_warehouse"
android:id="@+id/id_ll_aboutus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
......@@ -490,16 +489,17 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dp"
android:src="@drawable/icon_wodecangku" />
android:src="@drawable/icon_guanyuwomen" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的仓库"
android:text="关于我们"
android:textColor="@color/color_333333"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/id_ll_login_out"
android:layout_width="0dp"
......
<?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:id="@+id/id_rl_suc_view">
<View
android:id="@+id/id_rights_detail_title_sys_bar_view2"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginBottom="10dp" />
<ImageView
android:id="@+id/id_img_back2"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_below="@id/id_rights_detail_title_sys_bar_view2"
android:layout_marginLeft="16dp"
android:src="@drawable/icon_fanhui" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_rights_detail_title_sys_bar_view2"
android:layout_centerHorizontal="true"
android:includeFontPadding="false"
android:text="支付结果"
android:textColor="@color/color_333333"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_img_back2"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:drawableTop="@drawable/img_rights_pay_suc_icon"
android:gravity="center"
android:text="恭喜您\n本次交易成功!"
android:textColor="@color/color_333333"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_btn_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="40dp"
android:background="@drawable/img_black_btn_bg"
android:gravity="center"
android:text="查看订单"
android:textColor="#FDDFA5"
android:textSize="18sp"
android:textStyle="bold" />
</RelativeLayout>
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