package com.igo.user.ui
|
|
import android.Manifest
|
import android.annotation.SuppressLint
|
import android.app.Activity
|
import android.content.Intent
|
import android.graphics.Paint
|
import android.net.Uri
|
import android.os.Build
|
import android.text.Spannable
|
import android.util.Log
|
import android.view.View
|
import android.view.ViewGroup
|
import android.widget.TextView
|
import androidx.core.os.bundleOf
|
import androidx.core.view.GravityCompat
|
import androidx.core.view.isVisible
|
import androidx.drawerlayout.widget.DrawerLayout
|
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.FragmentPagerAdapter
|
import androidx.lifecycle.lifecycleScope
|
import androidx.viewpager.widget.PagerAdapter
|
import androidx.viewpager.widget.ViewPager
|
import cn.sinata.rxnetty.NettyClient
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.invisible
|
import cn.sinata.xldutils.utils.SPUtils
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.optInt
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import cn.sinata.xldutils.visible
|
import com.facebook.drawee.view.SimpleDraweeView
|
import com.google.android.gms.maps.CameraUpdateFactory
|
import com.google.android.gms.maps.model.LatLng
|
import com.igo.user.BuildConfig
|
import com.igo.user.IGoApplication
|
import com.igo.user.R
|
import com.igo.user.dialog.AlertDialog
|
import com.igo.user.dialog.BannerDialog
|
import com.igo.user.dialog.TipDialog
|
import com.igo.user.extension.setOnDurationClickListener
|
import com.igo.user.network.HttpManager
|
import com.igo.user.network.entity.Function
|
import com.igo.user.network.entity.UserInfo
|
import com.igo.user.network.request
|
import com.igo.user.ui.HomeActivity.Companion.funcHome
|
import com.igo.user.ui.HomeActivity.Companion.latHome
|
import com.igo.user.ui.HomeActivity.Companion.lonHome
|
import com.igo.user.ui.crosscity.PayCrossActivity
|
import com.igo.user.ui.logistics.LogisticsFragment
|
import com.igo.user.ui.mine.FeedbackActivity
|
import com.igo.user.ui.mine.InvokeListActivity
|
import com.igo.user.ui.mine.MsgActivity
|
import com.igo.user.ui.mine.MyCouponActivity
|
import com.igo.user.ui.mine.OrderActivity
|
import com.igo.user.ui.mine.RedPackageActivity
|
import com.igo.user.ui.mine.SafetyActivity
|
import com.igo.user.ui.mine.ScoreActivity
|
import com.igo.user.ui.mine.ServiceActivity
|
import com.igo.user.ui.mine.SettingActivity
|
import com.igo.user.ui.mine.ShareAppActivity
|
import com.igo.user.ui.mine.UserInfoActivity
|
import com.igo.user.ui.mine.WalletActivity
|
import com.igo.user.ui.trip.MapTripFragment
|
import com.igo.user.ui.trip.OrderDetailActivity
|
import com.igo.user.ui.trip.ScanActivity
|
import com.igo.user.ui.trip.TripActivity
|
import com.igo.user.utils.Const
|
import com.tbruyelle.rxpermissions2.RxPermissions
|
import org.jetbrains.anko.find
|
import org.jetbrains.anko.sdk27.coroutines.onClick
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
import org.jetbrains.anko.textColor
|
|
class MainActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_main
|
|
val isOpen by lazy { //当前城市是否开通,false需要强制选择城市
|
intent.getBooleanExtra("isOpen", false)
|
}
|
private var func = arrayListOf<Function>()
|
val lat by lazy {
|
intent.getDoubleExtra("lat", 0.0)
|
}
|
|
val lon by lazy {
|
intent.getDoubleExtra("lon", 0.0)
|
}
|
|
private val taxiFragment by lazy { MapTripFragment() }
|
|
// private val crossCityFragment by lazy { CrossCityFragment() }
|
private val logisticsFragment by lazy { LogisticsFragment() }
|
// private val charterFragment by lazy { CharterFragment() }
|
|
//起点信息,传递给扫码下单页面
|
var startLat = 0.0
|
var startLon = 0.0
|
var startName = ""
|
|
var userInfo: UserInfo? = null
|
private val titles = arrayListOf<String>()
|
var phoneEmergency = "" //报警电话
|
var isTripping = false //是否有进行中的订单,如果没有 拖动地图才查询附近司机数量
|
private val imguserinto by lazy { find<View>(R.id.imguserinto) }
|
private val iv_mine by lazy { find<View>(R.id.iv_mine) }
|
private val mViewPager by lazy { find<ViewPager>(R.id.mViewPager) }
|
private val drawer_main by lazy { find<DrawerLayout>(R.id.drawer_main) }
|
private val tv_score by lazy { find<TextView>(R.id.tv_score) }
|
private val tv_order by lazy { find<TextView>(R.id.tv_order) }
|
private val tv_setting by lazy { find<TextView>(R.id.tv_setting) }
|
private val tv_city by lazy { find<TextView>(R.id.tv_city) }
|
private val tv_coupon by lazy { find<TextView>(R.id.tv_coupon) }
|
private val iv_header_home by lazy { find<SimpleDraweeView>(R.id.iv_header_home) }
|
private val tv_safe by lazy { find<TextView>(R.id.tv_safe) }
|
private val tv_wallet by lazy { find<TextView>(R.id.tv_wallet) }
|
private val tv_share by lazy { find<TextView>(R.id.tv_share) }
|
private val iv_msg by lazy { find<View>(R.id.iv_msg) }
|
private val tv_feed_back by lazy { find<TextView>(R.id.tv_feed_back) }
|
private val tv_service by lazy { find<TextView>(R.id.tv_service) }
|
private val iv_scan by lazy { find<View>(R.id.iv_scan) }
|
private val tv_invoice by lazy { find<View>(R.id.tv_invoice) }
|
private val tv_email by lazy { find<View>(R.id.tv_email) }
|
private val tv_tip by lazy { find<TextView>(R.id.tv_tip) }
|
private val tv_nickname by lazy { find<TextView>(R.id.tv_nickname) }
|
private val tabView by lazy { find<View>(R.id.tabView) }
|
private val fake_viewpager by lazy { find<ViewPager>(R.id.fake_viewpager) }
|
private val line_top by lazy { find<View>(R.id.line_top) }
|
private val iv_unread by lazy { find<View>(R.id.iv_unread) }
|
private val tv_logistics_title by lazy { find<TextView>(R.id.tv_logistics_title) }
|
private val cl_title by lazy { find<View>(R.id.cl_title) }
|
private val cl_right by lazy { find<View>(R.id.cl_right) }
|
private val tv_red by lazy { find<View>(R.id.tv_red) }
|
|
|
private val tabview1 by lazy { find<TextView>(R.id.tabview1) }
|
private val tabview2 by lazy { find<TextView>(R.id.tabview2) }
|
|
|
override fun initClick() {
|
|
|
iv_mine.setOnClickListener {
|
/* if (iv_mine.isSelected){
|
if (fragments[mViewPager.currentItem] is MapTripFragment){
|
taxiFragment.back()
|
}else{
|
logisticsFragment.back(false)
|
}
|
}
|
else if (checkLogin())
|
if (!drawer_main.isDrawerOpen(GravityCompat.START))
|
drawer_main.openDrawer(GravityCompat.START)*/
|
finish()
|
}
|
imguserinto.setOnClickListener {
|
if (checkLogin())
|
if (!drawer_main.isDrawerOpen(GravityCompat.START))
|
drawer_main.openDrawer(GravityCompat.START)
|
}
|
|
tv_score.setOnClickListener {
|
userInfo?.apply {
|
startActivity<ScoreActivity>("score" to integral)
|
}
|
}
|
tv_order.setOnClickListener {
|
startActivity<OrderActivity>()
|
}
|
tv_setting.setOnClickListener {
|
startActivityForResult<SettingActivity>(500, "phone" to (userInfo?.phone ?: ""))
|
}
|
tv_city.setOnClickListener {
|
startActivityForResult<ChooseCityActivity>(501)
|
}
|
iv_header_home.setOnClickListener {
|
userInfo?.let {
|
startActivity<UserInfoActivity>(
|
"nickName" to it.nickName,
|
"avatar" to it.avatar,
|
"birthday" to it.birthday,
|
"sex" to it.sex,
|
"mail" to it.email,
|
"firstName" to it.firstName,
|
"lastName" to it.lastName
|
)
|
}
|
}
|
tv_coupon.setOnClickListener {
|
startActivity<MyCouponActivity>()
|
}
|
tv_safe.setOnClickListener {
|
userInfo?.let {
|
startActivity<SafetyActivity>(
|
"state" to it.verified,
|
"emergency" to it.emergencyContact,
|
"phone" to it.emergencyContactNumber,
|
"myPhone" to it.phone
|
)
|
}
|
}
|
tv_wallet.setOnClickListener {
|
userInfo?.let {
|
startActivity<WalletActivity>(
|
"balance" to it.balance,
|
"rechargeTotal" to it.rechargeAmountSum
|
)
|
}
|
}
|
tv_red.setOnClickListener {
|
startActivity<RedPackageActivity>()
|
}
|
tv_share.setOnClickListener {
|
startActivity<ShareAppActivity>()
|
}
|
iv_msg.setOnClickListener {
|
if (checkLogin())
|
startActivity<MsgActivity>()
|
}
|
|
tv_feed_back.setOnClickListener {
|
startActivity<FeedbackActivity>()
|
}
|
tv_service.setOnClickListener {
|
startActivity<ServiceActivity>()
|
}
|
iv_scan.setOnClickListener {
|
if (checkLogin())
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
RxPermissions(this).request(Manifest.permission.CAMERA)
|
} else {
|
RxPermissions(this).request(
|
Manifest.permission.CAMERA,
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
)
|
}
|
.subscribe {
|
if (it)
|
startActivity<ScanActivity>(
|
"startLat" to startLat,
|
"startLon" to startLon,
|
"startName" to startName
|
)
|
else
|
myToast("请在应用权限页面开启相机权限")
|
}
|
}
|
tv_invoice.setOnClickListener {
|
startActivity<InvokeListActivity>()
|
}
|
tv_email.setOnClickListener {
|
// startActivity<InvokeActivity>()
|
myToast("功能开发中")
|
}
|
Log.e("选中下标: ", intent.getIntExtra("pos", 0).toString())
|
|
|
}
|
|
private val fragments = arrayListOf<Fragment>()
|
override fun initView() {
|
titleBar.gone()
|
tv_city.text = IGoApplication.chooseCityName
|
val i = 0
|
val t = getString(R.string.当前附近有n辆车可用, i)
|
val stringBuilder = SpanBuilder(t).bold(
|
t.indexOf(i.toString()),
|
t.indexOf(i.toString()) + i.toString().length
|
)
|
.color(
|
this,
|
t.indexOf(i.toString()),
|
t.indexOf(i.toString()) + i.toString().length,
|
cn.sinata.xldutils.R.color.black
|
).build()
|
tv_tip.text = stringBuilder
|
tv_tip.isVisible = mViewPager.currentItem != 1
|
drawer_main.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
|
showLocationDescDialog {
|
fragments.clear()
|
func.clear()
|
funcHome.add(Function(1, getString(R.string.专车)))
|
funcHome.add(Function(4, getString(R.string.快件)))
|
IGoApplication.mainActivity = this
|
|
checkNewVersion()
|
getPhone()
|
if (isOpen)
|
getAds()
|
|
|
titles.addAll(arrayOf(getString(R.string.专车), getString(R.string.快件)))
|
fragments.add(taxiFragment)
|
fragments.add(logisticsFragment)
|
|
taxiFragment.callback = {
|
tv_tip.visibility = if (this) View.VISIBLE else View.GONE
|
}
|
|
|
/* func.forEach {
|
if (it.id in (1..2)&&!fragments.contains(taxiFragment))
|
|
else if (it.id == Const.OrderType.TYPE_CROSS_CITY)
|
fragments.add(crossCityFragment)
|
else if (it.id in (4..5)&&!fragments.contains(logisticsFragment))
|
|
else if (it.id == Const.OrderType.TYPE_CHARTER)
|
fragments.add(charterFragment)
|
}*/
|
|
mViewPager.adapter = object : FragmentPagerAdapter(
|
supportFragmentManager,
|
BEHAVIOR_SET_USER_VISIBLE_HINT
|
) {
|
override fun getItem(position: Int) = fragments[position]
|
|
override fun getCount() = fragments.size
|
|
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
|
// super.destroyItem(container, position, `object`)
|
}
|
|
override fun getItemPosition(`object`: Any): Int {
|
return PagerAdapter.POSITION_NONE
|
}
|
}
|
initTab()
|
NettyClient.getInstance().startService()
|
|
// Facebook散列字符串
|
// try {
|
// val info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES)
|
// info.signatures.forEach {
|
// val md = MessageDigest.getInstance("SHA")
|
// md.update(it.toByteArray())
|
// val encodeToString = Base64.encodeToString(md.digest(), Base64.DEFAULT);
|
// Log.e("mmp",encodeToString)
|
// }
|
// }
|
// catch (e:Exception) {
|
//
|
// }
|
|
mViewPager.currentItem = intent.getIntExtra("pos", 0).apply {
|
if (this == 0) {
|
iv_scan.visible()
|
tabview1.textColor = getColor(R.color.colorPrimary)
|
tabview2.textColor = getColor(cn.sinata.xldutils.R.color.textColor99)
|
} else {
|
iv_scan.gone()
|
tabview1.textColor = getColor(cn.sinata.xldutils.R.color.textColor99)
|
tabview2.textColor = getColor(R.color.colorPrimary)
|
}
|
if (this == 1) tv_tip.gone()
|
}
|
}
|
}
|
|
private fun checkNewVersion() {
|
HttpManager.queryNewData().request(this, false) { _, it ->
|
it?.run {
|
if (isFinishing) return@run
|
if (version > BuildConfig.VERSION_NAME && mandatory.isNotEmpty()) {
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf(
|
"title" to "新版本更新",
|
"msg" to content,
|
"ok" to "去更新",
|
"isAlert" to true
|
)
|
tipDialog.setCallback(object : TipDialog.OnClickCallback {
|
override fun onOk() {
|
val intent = Intent()
|
intent.action = "android.intent.action.VIEW"
|
intent.data = Uri.parse(url)
|
startActivity(intent)
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.setDismissCallback(object : TipDialog.OnDismiss {
|
override fun onDismiss() {
|
if (isMustUpgrade()) {
|
closeAll()
|
} else {
|
finish()
|
}
|
}
|
})
|
tipDialog.show(supportFragmentManager, "update")
|
}
|
}
|
}
|
}
|
|
private fun showAlert() {
|
val tipDialog = AlertDialog()
|
tipDialog.setDismissCallback(object : AlertDialog.OnDismiss {
|
override fun onDismiss() {
|
startActivityForResult<ChooseCityActivity>(501)
|
}
|
})
|
tipDialog.show(supportFragmentManager, "city")
|
}
|
|
var istaxi = true
|
|
private fun initTab() {
|
/*val frags = arrayListOf<Fragment>()
|
(0 until titles.size).forEach {
|
frags.add(PlaceHolderFragment())
|
}*/
|
/* tabView.setViewPager(fake_viewpager, titles.toTypedArray(), this, frags)
|
tabView.currentTab = intent.getIntExtra("pos", 0)*/
|
tabview1.setOnClickListener {
|
istaxi = true
|
updateTip(0)
|
mViewPager.currentItem = 0
|
iv_scan.visible()
|
taxiFragment.changeType(Const.OrderType.TYPE_SPECIAL)
|
|
tabview1.textColor = getColor(R.color.colorPrimary)
|
tabview2.textColor = getColor(cn.sinata.xldutils.R.color.textColor99)
|
|
}
|
tabview2.setOnClickListener {
|
istaxi = false
|
updateTip(1)
|
mViewPager.currentItem = 1
|
iv_scan.gone()
|
logisticsFragment.changeType(Const.OrderType.TYPE_SAME_CITY)
|
|
tabview2.textColor = getColor(R.color.colorPrimary)
|
tabview1.textColor = getColor(cn.sinata.xldutils.R.color.textColor99)
|
}
|
if (func.isEmpty())
|
return
|
if (fragments[0] is MapTripFragment)
|
taxiFragment.type = func[0].id
|
else {
|
line_top.visible()
|
if (fragments[0] is LogisticsFragment)
|
logisticsFragment.type = func[0].id
|
}
|
/* mViewPager.addOnPageChangeListener(object :OnPageChangeListener{
|
override fun onPageScrolled(
|
position: Int,
|
positionOffset: Float,
|
positionOffsetPixels: Int
|
) {
|
}
|
|
override fun onPageSelected(position: Int) {
|
if(position==0){
|
tabview1.textColor=getColor(R.color.colorPrimary)
|
tabview2.textColor=getColor(R.color.textColor99)
|
}else{
|
tabview1.textColor=getColor(R.color.textColor99)
|
tabview2.textColor=getColor(R.color.colorPrimary)
|
}
|
}
|
|
override fun onPageScrollStateChanged(state: Int) {
|
}
|
|
})*/
|
/* tabView.setOnTabSelectListener(object : OnTabSelectListener {
|
override fun onTabSelect(position: Int) {
|
Log.e("onTabSelect: ",position.toString() )
|
updateTip(func[position].id)
|
mViewPager.currentItem = position
|
if (position == 0) taxiFragment.changeType(Const.OrderType.TYPE_SPECIAL)
|
else logisticsFragment.changeType(Const.OrderType.TYPE_SAME_CITY)
|
*//* when(func[position].id){
|
Const.OrderType.TYPE_SPECIAL-> {
|
Log.e(Const.Tag,"当前模块为:专车")
|
line_top.gone()
|
mViewPager.currentItem = fragments.indexOf(taxiFragment)
|
taxiFragment.changeType(Const.OrderType.TYPE_SPECIAL)
|
}
|
Const.OrderType.TYPE_TAXI-> {
|
line_top.gone()
|
Log.e(Const.Tag,"当前模块为:出租车")
|
mViewPager.currentItem = fragments.indexOf(taxiFragment)
|
taxiFragment.changeType(Const.OrderType.TYPE_TAXI)
|
}
|
Const.OrderType.TYPE_CROSS_CITY-> {
|
line_top.visible()
|
Log.e(Const.Tag,"当前模块为:跨城出行")
|
mViewPager.currentItem = fragments.indexOf(crossCityFragment)
|
updateTitleVisibility(false,false)
|
}
|
Const.OrderType.TYPE_SAME_CITY-> {
|
Log.e(Const.Tag,"当前模块为:同城物流")
|
mViewPager.currentItem = fragments.indexOf(logisticsFragment)
|
taxiFragment.checkBack()
|
logisticsFragment.changeType(Const.OrderType.TYPE_SAME_CITY)
|
}
|
Const.OrderType.TYPE_TRANS_CROSS-> {
|
Log.e(Const.Tag,"当前模块为:跨城物流")
|
mViewPager.currentItem = fragments.indexOf(logisticsFragment)
|
taxiFragment.checkBack()
|
logisticsFragment.changeType(Const.OrderType.TYPE_TRANS_CROSS)
|
}
|
Const.OrderType.TYPE_CHARTER-> {
|
Log.e(Const.Tag,"当前模块为:包车")
|
mViewPager.currentItem = fragments.indexOf(charterFragment)
|
taxiFragment.checkBack()
|
}
|
}*//*
|
}
|
|
override fun onTabReselect(position: Int) {
|
}
|
})*/
|
mViewPager.offscreenPageLimit = 2
|
}
|
|
private fun getPhone() {
|
HttpManager.getPhone(IGoApplication.lat, IGoApplication.lon)
|
.request(this, false) { _, data ->
|
data?.let {
|
if (isFinishing) return@let
|
it.forEach {
|
if (it.type == 1)
|
phoneEmergency = it.phone
|
else if (it.type == 2)
|
IGoApplication.phoneService = it.phone
|
}
|
}
|
}
|
}
|
|
/**
|
* 查询是否有进行中的订单
|
*/
|
fun queryTripping() {
|
HttpManager.queryServingOrder().request(this, false) { _, data ->
|
data?.let {
|
if (isFinishing) return@let
|
if (it.isNullOrEmpty()) {
|
isTripping = false
|
if (fragments.contains(taxiFragment))
|
taxiFragment.getDriverNum()
|
tv_tip.onClick { }
|
getTripId()
|
} else {
|
val order = data[0]
|
if (order.state in (1..5) || order.state == 11) {
|
IGoApplication.tripId = order.tripId ?: ""
|
} else {
|
getTripId()
|
}
|
isTripping = true
|
tv_tip.text = getString(R.string.您有一笔订单正进行中)
|
tv_tip.isVisible = mViewPager.currentItem != 1
|
Log.e("当前订单详情: ", "order.state ${order.state}")
|
Log.e("当前订单详情: ", "order.orderType ${order.orderType}")
|
tv_tip.setOnDurationClickListener {
|
if (tv_tip.alpha != 0f) {
|
if (order.state in (1..5) || order.state == 11)
|
startActivity<TripActivity>(
|
"id" to order.orderId,
|
"type" to order.orderType
|
)
|
else if (order.state == 7 && order.orderType == Const.OrderType.TYPE_CROSS_CITY) {
|
startActivity<PayCrossActivity>("id" to order.orderId)
|
} else
|
startActivity<OrderDetailActivity>(
|
"id" to order.orderId,
|
"type" to order.orderType
|
)
|
}
|
}
|
if (!IGoApplication.hasAutoGoTripping) {
|
tv_tip.performClick()
|
IGoApplication.hasAutoGoTripping = true
|
}
|
}
|
}
|
}
|
}
|
|
private fun queryUserInfo() {
|
HttpManager.queryUserInfo().request(this) { _, data ->
|
userInfo = data
|
data?.run {
|
SPUtils.instance().put(Const.User.PHONE, phone).apply()
|
iv_header_home.setImageURI(avatar)
|
tv_nickname.text = nickName
|
tv_score.text =
|
getString(R.string.当前积分, if (integral.isEmpty()) "0" else integral)
|
tv_score.paintFlags = tv_score.paintFlags or Paint.UNDERLINE_TEXT_FLAG
|
IGoApplication.emergency = emergencyContactNumber
|
IGoApplication.phone = phone
|
IGoApplication.phoneOperator = phoneOperator
|
if (isOpen && func.isNotEmpty() && (firstName.isEmpty() || lastName.isEmpty()) && !IGoApplication.isNotifyEmail) {
|
IGoApplication.isNotifyEmail = true //只提醒一次
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf(
|
"msg" to getString(R.string.请完善你的姓名),
|
"ok" to getString(R.string.前往),
|
"cancel" to getString(R.string.取消),
|
"isNotifyRed" to true
|
)
|
tipDialog.setCallback(object : TipDialog.OnClickCallback {
|
override fun onOk() {
|
startActivity<UserInfoActivity>(
|
"nickName" to nickName,
|
"avatar" to avatar,
|
"birthday" to birthday,
|
"sex" to sex,
|
"mail" to email,
|
"firstName" to firstName,
|
"lastName" to lastName
|
)
|
}
|
|
override fun onCancel() {
|
}
|
})
|
tipDialog.showAllowingStateLoss(supportFragmentManager, "email")
|
}
|
}
|
}
|
}
|
|
private fun queryUnReadNum() {
|
HttpManager.queryUnReadNum().request(this, false) { _, data ->
|
data?.run {
|
iv_unread.visibility = if (optInt("number") > 0) View.VISIBLE else View.GONE
|
}
|
}
|
}
|
|
private fun updateTip(orderType: Int) {
|
if (orderType > 0)
|
tv_tip.gone()
|
else
|
tv_tip.visible()
|
}
|
|
fun updateLogisticsTitle(show: Boolean) {
|
tv_logistics_title.visibility = if (show) View.VISIBLE else View.GONE
|
}
|
|
fun updateTabVisibility(show: Boolean) {
|
tabView.visibility = if (show) View.VISIBLE else View.GONE
|
}
|
|
fun updateTipAlpha(f: Float) {
|
tv_tip.alpha = f
|
}
|
|
fun updateTipText(t: Spannable) {
|
tv_tip.text = t
|
tv_tip.isVisible = mViewPager.currentItem != 1
|
}
|
|
/**
|
* @param isHide true:广告上滑消失 false:下滑显示
|
* @param isChange true:确认订单步骤隐藏 false:返回上一步显示
|
*/
|
fun updateTitleVisibility(isHide: Boolean, isChange: Boolean) {
|
cl_title.visibility = if (isHide) View.GONE else View.VISIBLE
|
if (isChange) {
|
tv_city.invisible()
|
cl_right.gone()
|
iv_mine.isSelected = true
|
} else {
|
tv_city.visible()
|
cl_right.visible()
|
iv_mine.isSelected = false
|
}
|
}
|
|
///显示定位描述弹窗
|
private fun showLocationDescDialog(sureCallback: () -> Unit) {
|
val rxPermissions = RxPermissions(this);
|
if (!rxPermissions.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) {
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf(
|
"msg" to getString(R.string.定位权限说明),
|
"ok" to getString(R.string.ok),
|
"cancel" to getString(R.string.取消)
|
)
|
tipDialog.setCallback(object : TipDialog.OnClickCallback {
|
@SuppressLint("CheckResult")
|
override fun onOk() {
|
rxPermissions.request(
|
Manifest.permission.ACCESS_FINE_LOCATION,
|
Manifest.permission.ACCESS_COARSE_LOCATION
|
).subscribe {
|
if (it) {
|
sureCallback.invoke()
|
} else {
|
myToast(getString(R.string.没有权限))
|
finish()
|
}
|
}
|
}
|
|
override fun onCancel() {
|
finish()
|
}
|
})
|
tipDialog.isCancelable = false
|
tipDialog.show(supportFragmentManager, "locationDesc")
|
} else {
|
sureCallback.invoke()
|
}
|
}
|
|
private fun getAds() {
|
HttpManager.getAds(
|
1,
|
(if (lat != 0.0) lat else IGoApplication.lat).toString(),
|
(if (lon != 0.0) lon else IGoApplication.lon).toString()
|
).request(this) { _, data ->
|
data?.let {
|
if (it.isNotEmpty()) {
|
val bannerDialog = BannerDialog()
|
bannerDialog.arguments = bundleOf("data" to it)
|
bannerDialog.showAllowingStateLoss(supportFragmentManager, "banner")
|
}
|
}
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (requestCode == 500 && resultCode == Activity.RESULT_OK) {
|
resetLogin()
|
if (data?.getBooleanExtra("toLogin", false) == true)
|
gotoLogin()
|
} else if (requestCode == 501) {//选择城市
|
if (resultCode == Activity.RESULT_OK && data != null) {
|
/* startActivity<MainActivity>(
|
"isOpen" to true,
|
"func" to data.getParcelableArrayListExtra<Function>("func"),
|
"lat" to data.getDoubleExtra("lat", 0.0),
|
"lon" to data.getDoubleExtra("lon", 0.0)
|
)
|
funcHome = data.getParcelableArrayListExtra<Function>("func")!!*/
|
tv_city.text = IGoApplication.chooseCityName
|
// latHome=data.getDoubleExtra("lat",0.0)
|
// lonHome=data.getDoubleExtra("lon",0.0)
|
IGoApplication.lat = data.getDoubleExtra("lat", 0.0)
|
IGoApplication.lon = data.getDoubleExtra("lon", 0.0)
|
|
lifecycleScope.launchWhenResumed {
|
taxiFragment.aMap.moveCamera(
|
CameraUpdateFactory.newLatLng(
|
LatLng(
|
IGoApplication.lat,
|
IGoApplication.lon
|
)
|
)
|
)
|
}
|
|
Log.e("定位==============》", "${latHome},${lonHome}")
|
// finish()
|
} else if (!isOpen || func.isEmpty()) {
|
if (IGoApplication.chooseCityName == "——")
|
showAlert()
|
}
|
}
|
}
|
|
/**
|
* 恢复未登录状态
|
*/
|
fun resetLogin() {
|
drawer_main.closeDrawer(GravityCompat.START)
|
isTripping = false
|
if (fragments.contains(taxiFragment))
|
taxiFragment.getDriverNum()
|
}
|
|
override fun onResume() {
|
super.onResume()
|
refreshInfo()
|
}
|
|
fun getTripId() {
|
HttpManager.getNewTripId().request(this, false) { _, data ->
|
IGoApplication.tripId = data ?: ""
|
}
|
}
|
|
fun refreshInfo() {
|
if (checkLogin(false)) {
|
queryTripping()
|
queryUserInfo()
|
queryUnReadNum()
|
}
|
}
|
|
/* override fun onBackPressed() {
|
if (drawer_main.isDrawerOpen(GravityCompat.START))
|
drawer_main.closeDrawer(GravityCompat.START)
|
else if (fragments[mViewPager.currentItem] is LogisticsFragment && logisticsFragment.checkBack()) {
|
super.onBackPressed()
|
IGoApplication.hasAutoGoTripping = false
|
} else if (fragments[mViewPager.currentItem] is MapTripFragment && taxiFragment.checkBack()) {
|
super.onBackPressed()
|
IGoApplication.hasAutoGoTripping = false
|
}
|
}*/
|
}
|