唐浩
昨天 3d631dbadf98f3f77c6e955cb36219217ef73ab5
app/src/main/java/com/ziang/driver/ui/main/MainActivity.kt
@@ -8,10 +8,12 @@
import android.net.Uri
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.provider.Settings
import android.view.Gravity
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.rxnetty.NettyClient
import cn.sinata.xldutils.utils.*
import com.amap.api.location.AMapLocation
@@ -44,7 +46,9 @@
import com.umeng.socialize.PlatformConfig
import com.ziang.driver.bean.*
import com.ziang.driver.netUtls.*
import com.ziang.driver.ui.adapter.OrderHallAdapter
import com.ziang.driver.ui.mine.RechargeActivity
import com.ziang.driver.utils.DES
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.app_title.*
import kotlinx.android.synthetic.main.dialog_sure_and_del.view.*
@@ -59,15 +63,26 @@
    val mainFragment by lazy {
        MainFragment()
    }
    val smallFragment by lazy {
        MainSmallFragment()
    }
    val hallAdapter by lazy {
        OrderHallAdapter()
    }
    var queryNum = 0
//    val evalFrag = OrderHallFragment()
    var homeDataBean: HomeDataBean? = null
    override fun setContentView() {
        setContentView(R.layout.activity_main)
    }
    private val EasyFloatTag = "BACKGROUND"
    private var floater: EasyFloat.Builder? = null //浮窗
    private var paused:Boolean = false
    private var timeHandler = Handler(Looper.getMainLooper()) //用于检测小程序订单时间
    override fun initView() {
        MapsInitializer.updatePrivacyShow(this,true,true)
@@ -76,11 +91,17 @@
//        var intent =  Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//    intent.setData(Uri.parse("package:" + packageName));
//    startActivity(intent);
//        addFragment(evalFrag, R.id.fl_container_t)
        recycler_view_hall.layoutManager = LinearLayoutManager(this)
        recycler_view_hall.adapter = hallAdapter
        upDateSmall()
        MyApplication.getInstance()?.initPersionDate()
        setTitleText("子昂出行司机")
        if (CacheKey.getKeyStr(Const.REFUSE_LOCATION).isNotEmpty()&&!RxPermissions(this).isGranted(
        if (CacheKey.getKeyStr(Const.REFUSE_LOCATION)
                .isNotEmpty() && !RxPermissions(this).isGranted(
                Manifest.permission.ACCESS_FINE_LOCATION
            )){
            )
        ) {
            toast("没有定位权限,您将无法收到新订单推送")
        }else{
            if (!RxPermissions(this).isGranted(Manifest.permission.ACCESS_FINE_LOCATION)){
@@ -92,7 +113,8 @@
                    {
                    }){
                    val subscribe =
                        RxPermissions(this).request(Manifest.permission.ACCESS_FINE_LOCATION).subscribe {
                        RxPermissions(this).request(Manifest.permission.ACCESS_FINE_LOCATION)
                            .subscribe {
                            if (!it){
                                toast("没有定位权限,您将无法收到新订单推送")
                                CacheKey.putKeyStr(Const.REFUSE_LOCATION, "1")
@@ -103,7 +125,8 @@
        }
        tv_Left.setDrawableLeft(R.mipmap.icon_nav_user)
        iv_right_title.setImageResource(R.mipmap.icon_nav_news)
        addFragment(mainFragment, R.id.rl_container)
        addFragment(smallFragment, R.id.rl_container)
//        addFragment(mainFragment, R.id.rl_container)
        AMapKit.initLocation(this, this)
        MyApplication.isLogin = true
        beOnDuty(false)
@@ -112,6 +135,39 @@
        callVersion()
        checkGps()
        MyApplication.addOrderView(qeeOrderView)
    }
    private fun callHall() {
        var map = getMapByAny()
        map.set("size",100)
        map.set("pageNum",1)
        callNetAndError(false,Api.queryHallOrderList,map,{
            var data = gson.fromJson<OrderHallBean>(it,OrderHallBean::class.java)
            hallAdapter.data.clear()
            hallAdapter.data.addAll(data.data.list)
            hallAdapter.notifyDataSetChanged()
            tv_order_big_all.text = "接单大厅("+hallAdapter.data.size+")"
        }){
        }
    }
    /***
     * 一秒检测一次小程序订单时间
     */
    private fun upDateSmall() {
        timeHandler.postDelayed({
            queryNum++
            var size = smallFragment.mainSmallAdapter.data.size
            tv_order_small.text = "小程序订单($size)"
            upDateSmall()
            if (queryNum%10 == 0){
                callHall()
            }
        }, 1000)
    }
@@ -122,8 +178,10 @@
                    1,2,3 -> {
                        if (it.status == 10 || it.status == 12) {
                            Handler(Looper.getMainLooper()).post {
                                if (mainFragment?.isAdded && mainFragment?.isVisible){
                                mainFragment?.refresh()
                                MyApplication.getTTsManager().setVideoText("有用户订单被取消或改派")
                                }
                            }
                        }
                    }
@@ -135,7 +193,12 @@
    private fun checkGps() {
        if (!AMapKit.isLocServiceEnable(this)){
            DialogUtil.getDelAndSureDialog(this,"查看定位","退出","您暂未开启手机定位GPS,是否前往开启?",{
            DialogUtil.getDelAndSureDialog(
                this,
                "查看定位",
                "退出",
                "您暂未开启手机定位GPS,是否前往开启?",
                {
                onBackPressed()
            }){
                val intent = Intent()
@@ -230,8 +293,11 @@
    override fun onResume() {
        super.onResume()
        paused = false
        callOrderCount()
//        callOrderCount()
//        mainFragment.showQuan = false
        if (mainFragment != null && mainFragment.isAdded && mainFragment.isVisible){
        mainFragment?.refresh()
        }
    }
    override fun onPause() {
@@ -246,6 +312,13 @@
        }else{
            avv_anim.gone()
            tv_up_avv.gone()
        }
    }
    override fun onDestroy() {
        super.onDestroy()
        if (timeHandler != null) {
            timeHandler.removeCallbacksAndMessages(0)
        }
    }
@@ -268,7 +341,12 @@
                if (!Settings.canDrawOverlays(this) && CacheKey.getKeyStr("isRefusedFloat")
                        .isNullOrEmpty()
                ) { //没有浮窗权限并且没有拒绝过
                    DialogUtil.getDelAndSureDialog(this, "去开启", "取消", "为了增加后台推单的稳定性,我们需要开启悬浮窗口权限", {
                    DialogUtil.getDelAndSureDialog(
                        this,
                        "去开启",
                        "取消",
                        "为了增加后台推单的稳定性,我们需要开启悬浮窗口权限",
                        {
                        CacheKey.putKeyStr("isRefusedFloat", "1")
                    }) {
                        var intent = Intent(
@@ -312,6 +390,8 @@
        tv_server_ing.setOnClickListener {
            tv_server_ing.textColor(this, R.color.main_yellow)
            tv_wait_server.textColor(this, R.color.main_gray)
            tv_order_small.textColor(this, R.color.main_gray)
            addFragment(mainFragment, R.id.rl_container)
            mainFragment.state = 1
            mainFragment.autoRefresh()
        }
@@ -319,8 +399,19 @@
        tv_wait_server.setOnClickListener {
            tv_server_ing.textColor(this, R.color.main_gray)
            tv_wait_server.textColor(this, R.color.main_yellow)
            tv_order_small.textColor(this, R.color.main_gray)
            addFragment(mainFragment, R.id.rl_container)
            mainFragment.state = 2
            mainFragment.autoRefresh()
        }
        tv_order_small.clickDelay {
            tv_server_ing.textColor(this, R.color.main_gray)
            tv_wait_server.textColor(this, R.color.main_gray)
            tv_order_small.textColor(this, R.color.main_yellow)
            addFragment(smallFragment, R.id.rl_container)
            smallFragment.mainSmallAdapter.notifyDataSetChanged()
        }
        tv_Left.clickDelay {
@@ -405,7 +496,6 @@
    }
    private
    var mBackAppTime: Long = 0
@@ -425,27 +515,48 @@
                beOnDuty(true)
                initCall()
            }
            BaseEvent.CHANGE_CAR_SUCCESS -> {
                initCall()
            }
            BaseEvent.CALL_NUM_MAIN -> {
                callNum()
            }
            BaseEvent.REFREASH_MAIN -> {
                mainFragment?.refresh()
            }
            BaseEvent.APP_BACKGROUND -> {
                if (getUserId() != -1 &&homeDataBean?.data?.work == 1 && Settings.canDrawOverlays(this) ) {
                if (getUserId() != -1 && homeDataBean?.data?.work == 1 && Settings.canDrawOverlays(
                        this
                    )
                ) {
                    showFloater()
                    EasyFloat.show(EasyFloatTag)
                }
            }
            BaseEvent.APP_FOREGROUND -> {
                EasyFloat.hide(EasyFloatTag)
            }
            BaseEvent.APP_LOG -> {
//                tv_log.text = "${TimeUtils.getCurrentTimeMillisecond(System.currentTimeMillis())} ${event.msg}\n"+tv_log.text
            }
            BaseEvent.GET_SMALL_ORDER -> {
                //小程序订单来了
                var dataStr = event.msg
                val data = Gson().fromJson<OrderBean>(dataStr, OrderBean::class.java)
                data.time = System.currentTimeMillis()
                data.overTime =  event.typeTwo.toLong()
                smallFragment.setOrdertypeA(event.type)
                smallFragment.setDate(data)
                var size = smallFragment.mainSmallAdapter.data.size
                tv_order_small.text = "小程序订单($size)"
            }
        }
    }