18034727885
2026-07-24 6180e2986ca3c39262486458cee97e54d5f67450
app/src/main/java/com/igo/user/ui/MainActivity.kt
@@ -21,6 +21,7 @@
import androidx.lifecycle.lifecycleScope
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import cn.sinata.rxnetty.LogHelper
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.invisible
@@ -67,9 +68,9 @@
import com.igo.user.ui.trip.ScanActivity
import com.igo.user.ui.trip.TripActivity
import com.igo.user.utils.Const
import com.igo.user.utils.google.AMapKit
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
@@ -138,21 +139,8 @@
    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 {
@@ -288,9 +276,7 @@
            checkNewVersion()
            getPhone()
            if (isOpen)
                getAds()
            getAds()
            titles.addAll(arrayOf(getString(R.string.专车), getString(R.string.快件)))
            fragments.add(taxiFragment)
@@ -299,18 +285,6 @@
            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,
@@ -411,12 +385,6 @@
    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)
@@ -447,91 +415,18 @@
            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)
        val currentLocation = IGoApplication.getCurrentLocation()
        HttpManager.getPhone(currentLocation.latitude, currentLocation.longitude)
            .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
                    }
                data?.forEach {
                    if (it.type == 1)
                        phoneEmergency = it.phone
                    else if (it.type == 2)
                        IGoApplication.phoneService = it.phone
                }
            }
    }
@@ -540,19 +435,20 @@
     * 查询是否有进行中的订单
     */
    fun queryTripping() {
        LogHelper.logRecord("查询是否有进行中的订单")
        HttpManager.queryServingOrder().request(this, false) { _, data ->
            data?.let {
                if (isFinishing) return@let
                if (it.isNullOrEmpty()) {
                if (it.isEmpty()) {
                    isTripping = false
                    if (fragments.contains(taxiFragment))
                        taxiFragment.getDriverNum()
                    tv_tip.onClick { }
                    tv_tip.setOnClickListener(null)
                    getTripId()
                } else {
                    val order = data[0]
                    if (order.state in (1..5) || order.state == 11) {
                        IGoApplication.tripId = order.tripId ?: ""
                        IGoApplication.tripId = order.tripId
                    } else {
                        getTripId()
                    }
@@ -563,12 +459,13 @@
                    Log.e("当前订单详情: ", "order.orderType ${order.orderType}")
                    tv_tip.setOnDurationClickListener {
                        if (tv_tip.alpha != 0f) {
                            if (order.state in (1..5) || order.state == 11)
                            if (order.state in (1..5) || order.state == 11) {
                                LogHelper.logRecord("有正在处理的订单state:${order.state} orderId:${order.orderId} orderType:${order.orderType}")
                                startActivity<TripActivity>(
                                    "id" to order.orderId,
                                    "type" to order.orderType
                                )
                            else if (order.state == 7 && order.orderType == Const.OrderType.TYPE_CROSS_CITY) {
                            } else if (order.state == 7 && order.orderType == Const.OrderType.TYPE_CROSS_CITY) {
                                startActivity<PayCrossActivity>("id" to order.orderId)
                            } else
                                startActivity<OrderDetailActivity>(
@@ -716,12 +613,23 @@
        }
    }
    //获取广告
    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 ->
        if (!isOpen) {
            return
        }
        if (lat != 0.0 && lon != 0.0) {
            getAds(lat, lon)
        } else {
            initLocation {
                getAds(it.latitude, it.longitude)
            }
        }
    }
    //获取广告
    private fun getAds(latitude: Double, longitude: Double) {
        HttpManager.getAds(1, latitude.toString(), longitude.toString()).request(this) { _, data ->
            data?.let {
                if (it.isNotEmpty()) {
                    val bannerDialog = BannerDialog()
@@ -740,32 +648,16 @@
                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)
                IGoApplication.setLocation(
                    data.getDoubleExtra("lat", 0.0),
                    data.getDoubleExtra("lon", 0.0)
                )
                lifecycleScope.launchWhenResumed {
                    taxiFragment.aMap.moveCamera(
                        CameraUpdateFactory.newLatLng(
                            LatLng(
                                IGoApplication.lat,
                                IGoApplication.lon
                            )
                        )
                    taxiFragment.aMap?.moveCamera(
                        CameraUpdateFactory.newLatLng(IGoApplication.getCurrentLocation())
                    )
                }
                Log.e("定位==============》", "${latHome},${lonHome}")
                // finish()
            } else if (!isOpen || func.isEmpty()) {
                if (IGoApplication.chooseCityName == "——")
                    showAlert()
@@ -802,15 +694,25 @@
        }
    }
    /* 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
         }
     }*/
    //初始化定位
    private fun initLocation(block: (LatLng) -> Unit) {
        if (!IGoApplication.hadInitLocation()) {
            AMapKit.initLocation(this, success = {
                val latLng = it.latLng
                if (latLng == null) {
                    LogHelper.logRecord("定位失败")
                    return@initLocation
                }
                latHome = latLng.latitude
                lonHome = latLng.longitude
                LogHelper.logRecord("定位成功:latitude=${latLng.latitude} longitude=${latLng.longitude}")
                IGoApplication.setLocation(latLng)
                block.invoke(latLng)
            }) {
                LogHelper.logRecord("定位失败")
            }
            return
        }
        block.invoke(IGoApplication.getCurrentLocation())
    }
}