package com.fangxinxing.xxfxx.ui.mine
|
|
import android.Manifest
|
import android.app.Activity
|
import android.content.ClipData
|
import android.content.ClipboardManager
|
import android.content.Context
|
import android.graphics.Bitmap
|
import android.os.Environment
|
import android.provider.MediaStore
|
import android.provider.Settings
|
import android.util.Log
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import com.fangxinxing.xxfxx.R
|
import com.fangxinxing.xxfxx.base.BaseEvent
|
import com.fangxinxing.xxfxx.base.MyApplication
|
import com.fangxinxing.xxfxx.base.MyBaseFragment
|
import com.fangxinxing.xxfxx.bean.AllPhoneBean
|
import com.fangxinxing.xxfxx.bean.MerchantInfo
|
import com.fangxinxing.xxfxx.bean.ModuleBean
|
import com.fangxinxing.xxfxx.bean.ShareBean
|
import com.fangxinxing.xxfxx.bean.UserBean
|
import com.fangxinxing.xxfxx.bean.UserInfoBean
|
import com.fangxinxing.xxfxx.netUtls.Api
|
import com.fangxinxing.xxfxx.netUtls.Api.strShare
|
import com.fangxinxing.xxfxx.netUtls.callNet
|
import com.fangxinxing.xxfxx.netUtls.callNetGet
|
import com.fangxinxing.xxfxx.netUtls.getMapByAny
|
import com.fangxinxing.xxfxx.ui.DialogUtil
|
import com.fangxinxing.xxfxx.ui.main.HistoryOrderActivity
|
import com.fangxinxing.xxfxx.ui.mine.money_bag.MineIncomeActivity
|
import com.fangxinxing.xxfxx.ui.mine.money_bag.MineWalletActivity
|
import com.fangxinxing.xxfxx.ui.mine.setting.SettingActivity
|
import com.fangxinxing.xxfxx.ui.pub.BecomeDriverActivity
|
import com.fangxinxing.xxfxx.utils.Cache.CacheKey
|
import com.fangxinxing.xxfxx.utils.ImageUtils
|
import com.fangxinxing.xxfxx.utils.clickDelay
|
import com.fangxinxing.xxfxx.utils.glide.GlideUtil
|
import com.fangxinxing.xxfxx.utils.setDrawableRight
|
import com.fangxinxing.xxfxx.utils.toast
|
import com.tbruyelle.rxpermissions2.RxPermissions
|
import com.umeng.socialize.ShareAction
|
import com.umeng.socialize.ShareContent
|
import com.umeng.socialize.UMShareListener
|
import com.umeng.socialize.bean.SHARE_MEDIA
|
import com.umeng.socialize.media.UMImage
|
import com.umeng.socialize.media.UMWeb
|
import kotlinx.android.synthetic.main.activity_mine.iv_head
|
import kotlinx.android.synthetic.main.activity_mine.ll_income_order
|
import kotlinx.android.synthetic.main.activity_mine.ll_mine_money
|
import kotlinx.android.synthetic.main.activity_mine.ll_order_count
|
import kotlinx.android.synthetic.main.activity_mine.ll_qr
|
import kotlinx.android.synthetic.main.activity_mine.rl_acount_safe
|
import kotlinx.android.synthetic.main.activity_mine.rl_call_server
|
import kotlinx.android.synthetic.main.activity_mine.rl_change_car
|
import kotlinx.android.synthetic.main.activity_mine.rl_driver_info
|
import kotlinx.android.synthetic.main.activity_mine.rl_line_car
|
import kotlinx.android.synthetic.main.activity_mine.rl_mine_eval
|
import kotlinx.android.synthetic.main.activity_mine.rl_mine_order
|
import kotlinx.android.synthetic.main.activity_mine.rl_put_friend
|
import kotlinx.android.synthetic.main.activity_mine.rl_remark
|
import kotlinx.android.synthetic.main.activity_mine.rl_set_order
|
import kotlinx.android.synthetic.main.activity_mine.rl_setting
|
import kotlinx.android.synthetic.main.activity_mine.tv_brand
|
import kotlinx.android.synthetic.main.activity_mine.tv_company
|
import kotlinx.android.synthetic.main.activity_mine.tv_left_title_mine
|
import kotlinx.android.synthetic.main.activity_mine.tv_name
|
import kotlinx.android.synthetic.main.activity_mine.tv_order_income
|
import kotlinx.android.synthetic.main.activity_mine.tv_order_num
|
import kotlinx.android.synthetic.main.activity_mine.tv_share_income
|
import kotlinx.android.synthetic.main.dialog_share_code.view.bg
|
import kotlinx.android.synthetic.main.dialog_share_code.view.iv_code
|
import kotlinx.android.synthetic.main.dialog_share_code.view.tv_copy
|
import kotlinx.android.synthetic.main.dialog_share_code.view.tv_line
|
import kotlinx.android.synthetic.main.dialog_share_code.view.tv_save
|
import kotlinx.android.synthetic.main.pop_share.view.ll_qq_share
|
import kotlinx.android.synthetic.main.pop_share.view.ll_wechat
|
import kotlinx.android.synthetic.main.pop_share.view.ll_wechat_q
|
import kotlinx.android.synthetic.main.pop_share.view.tv_item_right_share
|
import kotlinx.android.synthetic.main.pop_share.view.view_close_share
|
import org.jetbrains.anko.startActivity
|
import java.io.File
|
import java.io.FileOutputStream
|
import java.net.InetAddress
|
import java.net.NetworkInterface
|
import java.util.Collections
|
|
|
class MineActivity : MyBaseFragment() {
|
|
override fun layoutId(): Int {
|
return R.layout.activity_mine
|
}
|
|
override fun initView() {
|
callMine()
|
setOnclick()
|
// callModule()
|
}
|
|
var auditStatus = 0 //1=待审核,2=已同意,3=已拒绝 0 未申请
|
private var codeImage: Bitmap? = null
|
|
private fun callMerchant(function: (MerchantInfo) -> Unit) {
|
var map = getMapByAny()
|
callNet(Api.getMerchant, map) {
|
var merchatInfo = gson.fromJson<MerchantInfo>(it, MerchantInfo::class.java)
|
function(merchatInfo)
|
|
}
|
}
|
|
private fun callMine() {
|
var map = getMapByAny()
|
callNet(Api.queryInfo, map) {
|
var user = gson.fromJson<UserBean>(it, UserBean::class.java)
|
CacheKey.saveUserInfo(user.data)
|
showUI(user.data)
|
}
|
callNet(Api.queryHomeDataFromDriver, map) {
|
var user = gson.fromJson<UserBean>(it, UserBean::class.java)
|
tv_order_num.text = user.data.todayOrderNum.toString()
|
tv_order_income.text =
|
SpanBuilder.content("¥%.2f".format(user.data.todayOrderMoney)).sizeSpan(0, 1, 12)
|
.build()
|
tv_share_income.text =
|
SpanBuilder.content("¥%.2f".format(user.data.todayPromotionMoney))
|
.sizeSpan(0, 1, 12).build()
|
}
|
}
|
|
private fun callModule() {
|
var map = getMapByAny()
|
callNet(Api.getShowModular, map) {
|
var module = gson.fromJson<ModuleBean>(it, ModuleBean::class.java)
|
for (item in module.data) {
|
when (item.type) {//1=招募,2=租车,3=买车,4=出租个人车辆,5=卖车,6=商家中心,7=打车卡)
|
6 -> {
|
// tv_merchant.visibility =
|
// if (item.driverShow == 1) View.VISIBLE else View.GONE
|
}
|
}
|
}
|
}
|
}
|
|
override fun onResume() {
|
super.onResume()
|
callMine()
|
// callMerchant(){
|
// if (it.data.auditStatus.isEmpty() || it.data.auditStatus == "3" || it.data.auditStatus == "0"){
|
// tv_merchant.text = "入驻成为商家"
|
// }else{
|
// tv_merchant.text = "我的商家中心"
|
// }
|
// }
|
getAllMsg()
|
}
|
|
override fun onHiddenChanged(hidden: Boolean) {
|
super.onHiddenChanged(hidden)
|
getAllMsg()
|
}
|
|
private fun getAllMsg() {
|
// var map = getMapByAny()
|
// callNet(Api.getMessNum, map){
|
// var bean = gson.fromJson<CarRedNumBean>(it, CarRedNumBean::class.java)
|
// tv_red_commend.visibility = if (bean.data.commentNum > 0) View.VISIBLE else View.GONE
|
// tv_red_commend.text = bean.data.commentNum.toString()
|
// tv_red_car.visibility = if (bean.data.sellingCarNum > 0) View.VISIBLE else View.GONE
|
// }
|
}
|
|
|
var data: UserInfoBean? = null
|
|
private fun showUI(data: UserInfoBean?) {
|
data?.let {
|
this.data = it
|
GlideUtil.loady(MyApplication.getInstance(), it.avatar, iv_head)
|
tv_name.text = it.name + " " + it.licensePlate
|
tv_name.setDrawableRight(if (it.sex == 1) R.mipmap.icon_me_boy else R.mipmap.icon_me_girl)
|
tv_brand.text = it.brand
|
tv_company.text = it.enterpriseName
|
}
|
}
|
|
fun setOnclick() {
|
tv_left_title_mine.clickDelay {
|
requireActivity().onBackPressed()
|
}
|
rl_driver_info.clickDelay {
|
requireActivity().startActivity<BecomeDriverActivity>(
|
"cuurentNum" to 2,
|
"uid" to CacheKey.getUserId(),
|
"isEdit" to true
|
)
|
}
|
// tv_send.clickDelay {
|
// requireActivity().startActivity<MySendListActivity>()
|
// }
|
ll_order_count.clickDelay {
|
requireActivity().startActivity<OrderCountActivity>()
|
}
|
ll_income_order.clickDelay {
|
requireActivity().startActivity<OrderIncomeActivity>()
|
}
|
|
ll_mine_money.setOnClickListener {
|
requireActivity().startActivity<ShareIncomeActivity>()
|
// requireActivity().startActivity<MineIncomeActivity>()
|
}
|
|
rl_mine_order.clickDelay {
|
requireActivity().startActivity<HistoryOrderActivity>()
|
}
|
|
// rl_appeal_history.clickDelay {
|
// requireActivity().startActivity<HistoryAppealActivity>()
|
// }
|
|
|
rl_mine_eval.setOnClickListener {
|
data?.let {
|
requireActivity().startActivity<MineEvalActivity>("score" to data!!.score.toString())
|
}
|
}
|
//账户安全
|
rl_acount_safe.setOnClickListener {
|
requireActivity().startActivity<MineWalletActivity>()
|
}
|
//意见反馈
|
rl_remark.setOnClickListener {
|
requireActivity().startActivity<FeedbackRemarkActivity>()
|
}
|
//接单设置
|
rl_set_order.setOnClickListener {
|
requireActivity().startActivity<OrderSettingActivity>()
|
}
|
//线路班次
|
rl_line_car.setOnClickListener {
|
requireActivity().startActivity<LineClassManagerActivity>()
|
}
|
//更换车辆
|
rl_change_car.setOnClickListener {
|
requireActivity().startActivity<ChangeCarActivity>()
|
}
|
//推荐给好友
|
rl_put_friend.setOnClickListener {
|
// showShareDialog()
|
callNetGet(
|
requireContext(),
|
Api.personCode, HashMap()
|
) {
|
val stringBean = gson.fromJson<ShareBean>(it, ShareBean::class.java)
|
val dialog = DialogUtil.getDialog(requireContext(), R.layout.dialog_share_code)
|
val view = DialogUtil.getView(dialog)
|
view.tv_line.text = stringBean.data.url_link
|
codeImage = ImageUtils.base64ToBitmap(stringBean.data.img)
|
view.iv_code.setImageBitmap(codeImage)
|
view.bg.setOnClickListener {
|
dialog.dismiss()
|
codeImage?.recycle()
|
codeImage = null
|
}
|
view.tv_copy.setOnClickListener {
|
val clipboard: ClipboardManager =
|
requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
val clip: ClipData = ClipData.newPlainText("label", stringBean.data.url_link)
|
clipboard.setPrimaryClip(clip)
|
toast("复制成功")
|
dialog.dismiss()
|
codeImage?.recycle()
|
codeImage = null
|
}
|
view.tv_save.setOnClickListener {
|
val rx =
|
RxPermissions(requireActivity()).request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
.subscribe {
|
if (it) {
|
//保存
|
try {
|
val copyPath =
|
requireActivity().getExternalFilesDir(Environment.DIRECTORY_DCIM)!!.absolutePath + "/" + System.currentTimeMillis() + ".png"
|
val file = File(copyPath)
|
if (!file.exists()) {
|
file.createNewFile()
|
}
|
val fors = FileOutputStream(file)
|
codeImage!!.compress(Bitmap.CompressFormat.PNG, 0, fors)
|
fors.flush()
|
fors.close()
|
MediaStore.Images.Media.insertImage(
|
requireActivity().contentResolver,
|
file.absolutePath,
|
copyPath,
|
null
|
);
|
toast("保存成功")
|
dialog.dismiss()
|
codeImage?.recycle()
|
codeImage = null
|
} catch (e: Exception) {
|
toast("保存失败")
|
}
|
} else
|
toast("缺少文件访问权限")
|
}
|
}
|
}
|
|
}
|
|
//联系客服
|
rl_call_server.setOnClickListener {
|
requireActivity().startActivity<ServerPhoneActivity>()
|
}
|
|
// 二维码
|
ll_qr.setOnClickListener {
|
requireActivity().startActivity<QrCodeActivity>()
|
}
|
|
//设置
|
rl_setting.setOnClickListener {
|
requireActivity().startActivity<SettingActivity>()
|
}
|
//
|
|
// rl_bank_info.setOnClickListener {
|
// callNet(Api.getUserInfo, getMapByAny()){
|
// val bean = gson.fromJson(it, UserBankInfoBean::class.java)
|
// requireActivity().startActivity<WithdrawAccountActivity>("data" to bean.data) //进件
|
// }
|
// }
|
|
//
|
// tv_merchant.clickDelay {
|
// if (EasyPermissions.hasPermissions(requireActivity(), *Const.PERMISSIONS_LIST_CARMER)) {
|
// callMer()
|
// } else {
|
// EasyPermissions.requestPermissions(this, "", 1004, *Const.PERMISSIONS_LIST_CARMER)
|
// }
|
//
|
//
|
// }
|
//
|
// tv_conpon.clickDelay {
|
// requireActivity().startActivity<MerchantMineActivity>()
|
// }
|
|
}
|
|
override fun onPermissionsGranted(requestCode: Int, perms: MutableList<String>) {
|
super.onPermissionsGranted(requestCode, perms)
|
if (requestCode == 1004)
|
callMer()
|
}
|
|
|
fun getDeviceIPAddress(): String? {
|
try {
|
val interfaces: List<NetworkInterface> =
|
Collections.list(NetworkInterface.getNetworkInterfaces())
|
for (intf in interfaces) {
|
val addrs: List<InetAddress> = Collections.list(intf.getInetAddresses())
|
for (addr in addrs) {
|
if (!addr.isLoopbackAddress()) { // 排除回环地址
|
val sAddr: String = addr.getHostAddress()
|
// 只获取IPv4地址或者IPv6地址(根据你的需求)
|
val isIPv4 = sAddr.indexOf(':') < 0 // IPv4地址不包含冒号':'
|
if (isIPv4) { // 确保是IPv4地址
|
return sAddr
|
}
|
}
|
}
|
}
|
} catch (ex: Exception) {
|
// 处理异常,例如打印日志等
|
ex.printStackTrace()
|
}
|
return null // 如果没有找到合适的IP地址,返回null
|
}
|
|
fun getAndroidID(): String {
|
return Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID)
|
}
|
|
|
private fun callPhonePing(function: (String) -> Unit) {
|
callNet(Api.queryPhoneAll, getMapByAny()) {
|
var bean = gson.fromJson<AllPhoneBean>(it, AllPhoneBean::class.java)
|
function(bean.data.platform)
|
}
|
}
|
|
|
var content = "新版“放心行司机端”隆重上线,下载注册即送打车券。"
|
|
fun showShareDialog() {
|
var shareStr = strShare + "?uid=" + CacheKey.getUserId() + "&type=2"
|
var dialog = DialogUtil.getDialog(mContext, R.layout.pop_share)
|
var view = DialogUtil.getView(dialog!!)
|
view.tv_item_right_share.setOnClickListener {
|
dialog!!.dismiss()
|
}
|
view.view_close_share.setOnClickListener {
|
dialog!!.dismiss()
|
}
|
|
view.ll_wechat.setOnClickListener {
|
share(
|
requireActivity(),
|
content,
|
"放心行司机端",
|
shareStr,
|
UMImage(mContext, R.drawable.android_red_logo),
|
SHARE_MEDIA.WEIXIN
|
)
|
dialog!!.dismiss()
|
}
|
view.ll_wechat_q.setOnClickListener {
|
share(
|
requireActivity(),
|
content,
|
"放心行司机端",
|
shareStr,
|
UMImage(mContext, R.drawable.android_red_logo),
|
SHARE_MEDIA.WEIXIN_CIRCLE
|
)
|
dialog!!.dismiss()
|
}
|
view.ll_qq_share.setOnClickListener {
|
share(
|
requireActivity(),
|
content,
|
"放心行司机端",
|
shareStr,
|
UMImage(mContext, R.drawable.android_red_logo),
|
SHARE_MEDIA.QQ
|
)
|
dialog!!.dismiss()
|
}
|
// view.ll_webo.setOnClickListener {
|
// share(mContext,"分享内容","分享标题","http//:www.baidu.com", UMImage(mContext,R.drawable.jz_forward_icon), SHARE_MEDIA.SINA)
|
// dialog!!.dismiss()
|
// }
|
|
}
|
|
|
open fun share(
|
context: Activity,
|
content: String?,
|
title: String?,
|
tagUrl: String?,
|
image: UMImage?,
|
platform: SHARE_MEDIA?
|
) {
|
val web = UMWeb(tagUrl, title, content, image)
|
val shareContent = ShareContent()
|
shareContent.mMedia = web
|
ShareAction(context).setPlatform(platform)
|
.setShareContent(shareContent)
|
.setCallback(object : UMShareListener {
|
override fun onResult(p0: SHARE_MEDIA?) {
|
Log.d("TAG", p0.toString())
|
}
|
|
override fun onCancel(p0: SHARE_MEDIA?) {
|
}
|
|
override fun onError(p0: SHARE_MEDIA?, p1: Throwable?) {
|
Log.d("TAG", p1!!.message.toString())
|
}
|
|
override fun onStart(p0: SHARE_MEDIA?) {
|
}
|
|
})
|
.share()
|
}
|
|
override fun onEventMainThread(event: BaseEvent?) {
|
super.onEventMainThread(event)
|
when (event!!.code) {
|
BaseEvent.CHANGE_CAR_SUCCESS -> {
|
callMine()
|
}
|
}
|
}
|
|
fun callMer() {
|
// callMerchant(){
|
// if (it.data.auditStatus.isEmpty() || it.data.auditStatus == "3" || it.data.auditStatus == "0"){
|
// tv_merchant.text = "入驻成为商家"
|
// }else{
|
// tv_merchant.text = "我的商家中心"
|
// }
|
// auditStatus = if (it.data.auditStatus.isEmpty()) 0 else it.data.auditStatus.toInt()
|
// if (it.data.state == "2"){
|
// showDialog()
|
// callPhonePing(){ its ->
|
// dismissDialog()
|
// toast("您的商家账户已冻结,请联系平台$its")
|
// }
|
// return@callMerchant
|
// }
|
// if (auditStatus == 2) {
|
// requireActivity().startActivity<MerchantMainActivity>("merchantId" to it.data.id)
|
// } else {
|
// requireActivity().startActivity<MerchantComeInActivity>(
|
// "auditStatus" to auditStatus,
|
// "hint" to it.data.auditNote
|
// )
|
// }
|
// }
|
}
|
}
|