package com.driver.igotrip.ui.mine
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.content.pm.PackageInfo
|
import android.content.pm.PackageManager
|
import android.net.Uri
|
import android.util.Base64
|
import android.util.Log
|
import android.view.View
|
import android.widget.ImageView
|
import android.widget.TextView
|
import cn.sinata.rxnetty.NettyClient
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import cn.sinata.xldutils.utils.clickDelay
|
import cn.sinata.xldutils.utils.getFormatOne
|
import cn.sinata.xldutils.utils.getFormatTwo
|
import com.driver.igotrip.R
|
import com.driver.igotrip.base.BaseEvent
|
import com.driver.igotrip.base.BaseEvent.REFREASH_ORDERLIST
|
import com.driver.igotrip.base.MyApplication
|
import com.driver.igotrip.base.MyBaseActivity
|
import com.driver.igotrip.bean.UserBean
|
import com.driver.igotrip.bean.UserInfoBean
|
import com.driver.igotrip.netUtls.Api
|
import com.driver.igotrip.netUtls.Api.strShare
|
import com.driver.igotrip.netUtls.HttpManager
|
import com.driver.igotrip.netUtls.callNet
|
import com.driver.igotrip.netUtls.getMapByAny
|
import com.driver.igotrip.ui.DialogUtil
|
import com.driver.igotrip.ui.main.HistoryOrderActivity
|
import com.driver.igotrip.ui.mine.money_bag.MinePurseActivity
|
import com.driver.igotrip.ui.mine.setting.SettingActivity
|
import com.driver.igotrip.ui.pub.LoginActivity
|
import com.driver.igotrip.utils.Cache.CacheKey
|
import com.driver.igotrip.utils.Cache.CacheUtil
|
import com.driver.igotrip.utils.glide.GlideUtil
|
import com.facebook.CallbackManager
|
import com.facebook.FacebookCallback
|
import com.facebook.FacebookException
|
import com.facebook.share.Sharer
|
import com.facebook.share.model.ShareLinkContent
|
import com.facebook.share.widget.ShareDialog
|
import com.twitter.sdk.android.tweetcomposer.TweetComposer
|
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 org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.find
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.toast
|
import java.net.URL
|
import java.security.MessageDigest
|
import java.security.NoSuchAlgorithmException
|
|
class MineActivity : MyBaseActivity() {
|
override fun setContentView() {
|
setContentView(R.layout.activity_mine)
|
}
|
|
|
//Facebook秘钥散列获取
|
private fun facebookHashKey() {
|
try {
|
val info: PackageInfo =
|
packageManager.getPackageInfo("com.driver.igotrip", PackageManager.GET_SIGNATURES)
|
for (signature in info.signatures ?: arrayOf()) {
|
val md: MessageDigest = MessageDigest.getInstance("SHA")
|
md.update(signature.toByteArray())
|
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT))
|
}
|
} catch (e: PackageManager.NameNotFoundException) {
|
} catch (e: NoSuchAlgorithmException) {
|
}
|
}
|
|
override fun initView() {
|
showHeader(false)
|
showTitle(false)
|
callMine()
|
facebookHashKey()
|
}
|
|
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)
|
}
|
}
|
|
override fun onResume() {
|
super.onResume()
|
callMine()
|
}
|
|
lateinit var data: UserInfoBean
|
|
|
private val iv_head by lazy { find<ImageView>(R.id.iv_head) }
|
private val tv_name by lazy { find<TextView>(R.id.tv_name) }
|
private val tv_company by lazy { find<TextView>(R.id.tv_company) }
|
private val tv_order_num by lazy { find<TextView>(R.id.tv_order_num) }
|
private val tv_star by lazy { find<TextView>(R.id.tv_star) }
|
private val tv_money by lazy { find<TextView>(R.id.tv_money) }
|
private val ll_qr by lazy { find<View>(R.id.ll_qr) }
|
private val view_qr by lazy { find<View>(R.id.view_qr) }
|
private val tv_left_title_mine by lazy { find<View>(R.id.tv_left_title_mine) }
|
private val rl_mail by lazy { find<View>(R.id.rl_mail) }
|
private val ll_mine_money by lazy { find<View>(R.id.ll_mine_money) }
|
private val rl_mine_eval by lazy { find<View>(R.id.rl_mine_eval) }
|
private val rl_acount_safe by lazy { find<View>(R.id.rl_acount_safe) }
|
private val rl_remark by lazy { find<View>(R.id.rl_remark) }
|
private val rl_set_order by lazy { find<View>(R.id.rl_set_order) }
|
private val rl_change_car by lazy { find<View>(R.id.rl_change_car) }
|
private val rl_put_friend by lazy { find<View>(R.id.rl_put_friend) }
|
private val rl_call_server by lazy { find<View>(R.id.rl_call_server) }
|
private val rl_setting by lazy { find<View>(R.id.rl_setting) }
|
private val rl_settlement by lazy { find<View>(R.id.rl_settlement) }
|
private val rl_login_out by lazy { find<View>(R.id.rl_login_out) }
|
private val rl_mine_attestation by lazy { find<View>(R.id.rl_mine_attestation) }
|
|
private fun showUI(data: UserInfoBean?) {
|
data?.let {
|
this.data = it
|
GlideUtil.loady(MyApplication.getInstance(), it.avatar, iv_head)
|
val name = "${it.firstName} ${it.lastName} ${it.licensePlate}"
|
tv_name.text = SpanBuilder.content(name).boldSpan(this,0,name.indexOf(it.licensePlate)).sizeSpan(0,name.indexOf(it.licensePlate),14).build()
|
tv_company.text = it.brand
|
tv_order_num.text = it.orderNum
|
tv_star.text = getFormatOne(it.score)
|
// tv_money.text = getString(R.string.money) + getFormatTwo(it.balance + it.laveBusinessMoney + it.laveBusinessNextWeekMoney)
|
tv_money.text = getString(R.string.money) + getFormatTwo(it.balance + it.laveBusinessMoney)
|
ll_qr.visibility = if (data.qrCodeIsOpen) View.VISIBLE else View.GONE
|
view_qr.visibility = if (data.qrCodeIsOpen) View.VISIBLE else View.GONE
|
}
|
}
|
|
override fun setOnclick() {
|
tv_left_title_mine.clickDelay {
|
onBackPressed()
|
}
|
rl_mail.clickDelay {
|
startActivity<MailCenterActivity>()
|
}
|
ll_mine_money.setOnClickListener {
|
startActivity<MinePurseActivity>()
|
}
|
findViewById<View>(R.id.rl_mineorder_eval).setOnClickListener {
|
startActivity<HistoryOrderActivity>()
|
}
|
|
rl_mine_eval.setOnClickListener {
|
startActivity<MineEvalActivity>("score" to data.score.toString())
|
}
|
//账户安全
|
rl_acount_safe.setOnClickListener {
|
startActivity<AcountSafeActivity>()
|
}
|
//意见反馈
|
rl_remark.setOnClickListener {
|
startActivity<FeedbackRemarkActivity>()
|
}
|
//接单设置
|
rl_set_order.setOnClickListener {
|
startActivity<OrderSettingActivity>()
|
}
|
|
//更换车辆
|
rl_change_car.setOnClickListener {
|
startActivity<ChangeCarActivity>()
|
}
|
//推荐给好友
|
rl_put_friend.setOnClickListener {
|
// startActivity<ShareActivity>()
|
showShareDialog()
|
}
|
|
//联系客服
|
rl_call_server.setOnClickListener {
|
startActivity<ServerPhoneActivity>()
|
}
|
|
// 二维码
|
ll_qr.setOnClickListener {
|
startActivity<QrCodeActivity>()
|
}
|
|
//设置
|
rl_setting.setOnClickListener {
|
startActivity<SettingActivity>()
|
}
|
rl_settlement.setOnClickListener {
|
startActivity<OfflinePayActivity>()
|
}
|
//
|
// 退出登录
|
rl_login_out.setOnClickListener {
|
DialogUtil.getDelAndSureDialog(this, getString(R.string.是否退出登录), {}, {
|
CacheUtil.get().clear()
|
NettyClient.getInstance().stopService()
|
CacheKey.putKeyStr("isAgreen", "1")
|
MyApplication.isLogin = false
|
startActivity<LoginActivity>()
|
EventBus.getDefault().post(BaseEvent(BaseEvent.OFF_LINE))
|
})
|
}
|
|
rl_mine_attestation.clickDelay {
|
startActivity<DriverAttestationActivity>()
|
}
|
}
|
|
private val content by lazy { getString(R.string.下载注册即送打车券) }
|
|
// http://182.160.16.251:81/share/share/shareIndex.html?type=2&uid=2&language=1
|
fun showShareDialog() {
|
var languageType = HttpManager.getTypeByLanguage()
|
var shareStr = strShare.format(languageType, languageType, CacheKey.getUserId())
|
var dialog = DialogUtil.getDialog(mContext, R.layout.pop_share)
|
var view = DialogUtil.getView(dialog!!)
|
val tv_item_right_share = view.find<TextView>(R.id.tv_item_right_share)
|
val view_close_share = view.find<View>(R.id.view_close_share)
|
val ll_x_share = view.find<View>(R.id.ll_x_share)
|
val ll_wechat = view.find<View>(R.id.ll_wechat)
|
val ll_wechat_q = view.find<View>(R.id.ll_wechat_q)
|
val ll_qq_share = view.find<View>(R.id.ll_qq_share)
|
val ll_wa_share = view.find<View>(R.id.ll_wa_share)
|
tv_item_right_share.setOnClickListener {
|
dialog!!.dismiss()
|
}
|
view_close_share.setOnClickListener {
|
dialog!!.dismiss()
|
}
|
ll_x_share.setOnClickListener {
|
shareX(this, shareStr)
|
dialog!!.dismiss()
|
}
|
ll_wa_share.setOnClickListener {
|
shareWA(this, content,shareStr)
|
dialog!!.dismiss()
|
}
|
ll_wechat.setOnClickListener {
|
share(
|
this,
|
content,
|
getString(R.string.IGO打车),
|
shareStr,
|
UMImage(mContext, R.drawable.icon),
|
SHARE_MEDIA.WEIXIN
|
)
|
dialog!!.dismiss()
|
}
|
ll_wechat_q.setOnClickListener {
|
share(
|
this,
|
content,
|
getString(R.string.IGO打车),
|
shareStr,
|
UMImage(mContext, R.drawable.icon),
|
SHARE_MEDIA.WEIXIN_CIRCLE
|
)
|
dialog!!.dismiss()
|
}
|
ll_qq_share.setOnClickListener {
|
shareFB(this, shareStr)
|
dialog!!.dismiss()
|
}
|
}
|
|
fun shareWA(act: Activity, txt: String, url: String){
|
val shareUrlStr = "https://wa.me/?text= $txt $url"
|
//shareUrlStr = "https://wa.me/?text=I'm inquiring about the apartment listing http://175.178.103.49/landing/index.html/ic=4433&source=10015";
|
val uriUrl = Uri.parse(shareUrlStr)
|
val launchBrowerIntent = Intent(Intent.ACTION_VIEW, uriUrl)
|
act.startActivity(Intent.createChooser(launchBrowerIntent, "I-Go"))
|
}
|
|
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()
|
}
|
|
fun shareFB(act: Activity, url: String) {
|
val mFBShareDialog = ShareDialog(act)
|
mFBShareDialog.registerCallback(CallbackManager.Factory.create(), object :
|
FacebookCallback<Sharer.Result> {
|
override fun onCancel() {
|
}
|
|
override fun onError(error: FacebookException) {
|
}
|
|
override fun onSuccess(result: Sharer.Result) {
|
}
|
})
|
|
if (ShareDialog.canShow(ShareLinkContent::class.java)) {
|
val mShareLinkBuilder = ShareLinkContent.Builder()
|
mShareLinkBuilder.setContentUrl(Uri.parse(url))
|
mShareLinkBuilder.setQuote(content)
|
mFBShareDialog.show(mShareLinkBuilder.build())
|
}
|
}
|
|
fun shareX(act: Activity, url: String){
|
try {
|
val uri1 = "android.resource://" + act.packageName + "/mipmap-xxhdpi/ic_launcher.png"
|
val builder = TweetComposer.Builder(act)
|
builder.text(content).url(URL(url)).image(Uri.parse(uri1)).show()
|
} catch (e: Exception) {
|
e.printStackTrace()
|
}
|
}
|
|
override fun onEventMainThread(event: BaseEvent?) {
|
super.onEventMainThread(event)
|
when (event!!.code) {
|
BaseEvent.CHANGE_CAR_SUCCESS -> {
|
callMine()
|
}
|
|
}
|
}
|
}
|