8.6
liugl
2020-08-06 a0b3598842d57f5dfb5736e8a4fff5a9d70191a5
8.6
5个文件已修改
3个文件已添加
274 ■■■■ 已修改文件
app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/okgoincar/bean/LocalOrderBean.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/okgoincar/utils/Cache/CacheKey.kt 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/okgoincar/utils/UtilKt.kt 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/mode_write.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/mode_write_and_black.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/slab_activity_main.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt
@@ -3,60 +3,115 @@
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.net.ConnectivityManager
import android.os.Handler
import android.os.Looper
import cn.sinata.rxnetty.netStatus.NetUtils
import cn.sinata.xldutils.netstatus.NetUtils
import cn.sinata.xldutils.utils.toast
import com.google.gson.Gson
import com.okgoincar.bean.LoginBean
import com.okgoincar.bean.LocalOrderBean
import com.okgoincar.netUtls.Api
import com.okgoincar.netUtls.callNet
import com.okgoincar.netUtls.getMapByAny
import com.okgoincar.netUtls.getToken
import com.okgoincar.slab.SlabLoginActivity
import com.okgoincar.slab.SlabMainActivity
import com.okgoincar.utils.Cache.CacheKey
import com.okgoincar.utils.Cache.CacheUtil
import io.netty.util.NetUtil
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import java.lang.Exception
class MoneyBroadCastReceiver : BroadcastReceiver() {
    override fun onReceive(contexts: Context?, intent: Intent?) {
        if (intent == null && contexts == null){
        if (intent == null && contexts == null) {
            toast("内容获取为空,广播接收消息错误")
            return
        }
        try {
            Handler(Looper.getMainLooper()).post {
                when(intent!!.action){
                    "wisdom.intent.action.ledLight" ->{
                        val isHeavy = intent!!.getBooleanExtra("isHeavy",true)
                        if (isHeavy){
                            callStatue(contexts!!,5) //代表让订单到进行中
                when (intent!!.action) {
                    "wisdom.intent.action.ledLight" -> {
                        val isHeavy = intent!!.getBooleanExtra("isHeavy", true)
                        if (isHeavy) {
                            callStatue(contexts!!, 5) //代表让订单到进行中
                        }
                    }
                    "wisdom.intent.action.priceDevice" -> {
                        var price = intent.getDoubleExtra("price",0.0) //计价器价格,单位为元
                        var mileage = intent.getDoubleExtra("mileage",0.0) //里程,单位为km
                        callOver(contexts!!,price)
                        var price = intent.getDoubleExtra("price", 0.0) //计价器价格,单位为元
                        var mileage = intent.getDoubleExtra("mileage", 0.0) //里程,单位为km
                        callOver(contexts!!, price)
                    }
                    ConnectivityManager.CONNECTIVITY_ACTION -> {
                        if (NetUtils.isNetworkConnected(MyApplication.getInstance())){
                            callErrorOrder()
                        }
                    }
                }
            }
        }catch (e:Exception){
        } catch (e: Exception) {
        }
    }
    private fun callStatue(contexts: Context,i: Int) {
        if (MyApplication.currentOrderId.isEmpty()){
    private fun callStatue(contexts: Context, i: Int) {
        if (MyApplication.currentOrderId.isEmpty()) {
            toast("没有进行中的订单,无法开始")
            return
        }
        if (CacheKey.getLocalOrderBean() == null) { //没有数据 代表没有异常订单
            if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理
                callStartOrder(contexts, i)
            } else { //无网络 存本地
                var bean = LocalOrderBean()
                bean.orderId = MyApplication.currentOrderId
                bean.startTime = System.currentTimeMillis()
                CacheKey.saveLocalOrderBean(bean)
            }
        } else { //有数据存着,并且有网络上传异常订单 如果没有网络就不处理,这个肯定是线下的单
            if (NetUtils.isNetworkConnected(MyApplication.getInstance())){
                callErrorOrder()
            }
        }
    }
    private fun callOver(contexts: Context, travelFee: Double) {
        if (MyApplication.currentOrderId.isEmpty()) {
            toast("没有进行中的订单,无法结束")
            return
        }
        if (CacheKey.getLocalOrderBean() == null) { //没有数据 代表没有异常订单
            if (NetUtils.isNetworkConnected(MyApplication.getInstance())) { //有网络直接处理
                callEndOrder(contexts, travelFee)
            } else { //无网络 存本地
                var bean = LocalOrderBean()
                bean.orderId = MyApplication.currentOrderId
                bean.endTime = System.currentTimeMillis()
                CacheKey.saveLocalOrderBean(bean)
            }
        } else { //有数据存着,并且有网络上传异常订单 如果没有网络就不处理,这个肯定是线下的单
            if (NetUtils.isNetworkConnected(MyApplication.getInstance())){
                callErrorOrder()
            }else{
               val bean =  CacheKey.getLocalOrderBean()
                bean?.let {
                    bean.endTime = System.currentTimeMillis()
                    bean.money = travelFee
                    bean.orderId = MyApplication.currentOrderId
                    CacheKey.saveLocalOrderBean(bean)
                }
            }
        }
    }
    /***
     * 上传异常订单
     */
    private fun callErrorOrder() {
    }
    fun callStartOrder(contexts: Context, i: Int) {
        var map = getMapByAny()
        map["orderId"] = MyApplication.currentOrderId
        map["orderType"] = MyApplication.currentOrderType
@@ -68,11 +123,9 @@
        }
    }
    private fun callOver(contexts: Context,travelFee:Double){
        if (MyApplication.currentOrderId.isEmpty()){
            toast("没有进行中的订单,无法结束")
            return
        }
    fun callEndOrder(contexts: Context, travelFee: Double) {
        var map = getMapByAny()
        map["orderId"] = MyApplication.currentOrderId
        map["orderType"] = MyApplication.currentOrderType
@@ -80,10 +133,9 @@
        map["lat"] = MyApplication.getLocation().latitude
        map["lon"] = MyApplication.getLocation().longitude
        map["type"] = 1
        callNet(contexts,Api.confirmFees_,map){
        callNet(contexts, Api.confirmFees_, map) {
            EventBus.getDefault().post(BaseEvent(BaseEvent.SURE_MONEY))
        }
    }
}
app/src/main/java/com/okgoincar/bean/LocalOrderBean.java
New file
@@ -0,0 +1,50 @@
package com.okgoincar.bean;
public class LocalOrderBean {
    public static String LOCAL_ORDER_INFO = "LOCAL_ORDER_INFO";
    private Long startTime;
    private Long endTime;
    private String orderId;
    private String orderType = "2";
    private double money;
    public Long getStartTime() {
        return startTime;
    }
    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }
    public Long getEndTime() {
        return endTime;
    }
    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    public String getOrderType() {
        return orderType;
    }
    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }
    public double getMoney() {
        return money;
    }
    public void setMoney(double money) {
        this.money = money;
    }
}
app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt
@@ -98,6 +98,7 @@
        callPersion()
//        showOrder("2221", "2", 100, 2)
        callVersion()
        view_mode.isSelected = !getNowTimeBlack()
    }
@@ -218,6 +219,21 @@
        tv_title_top.clickDelay {
        }
        view_mode.clickDelay {
            view_mode.isSelected = !view_mode.isSelected
            if (getNowTimeBlack()){
                CacheKey.putKeyStr("date_mode",System.currentTimeMillis().toString())
                CacheKey.putKeyStr("mode_now_time","1")//记录为点击切换的颜色 1 白色 2 黑色
                setBlackMode(false)
            }else{
                CacheKey.putKeyStr("date_mode",System.currentTimeMillis().toString())
                CacheKey.putKeyStr("mode_now_time","2")
                setBlackMode(true)
            }
        }
        tv_car.clickDelay {
            //            if (homeDataBean?.data?.work == 1) {
app/src/main/java/com/okgoincar/utils/Cache/CacheKey.kt
@@ -3,6 +3,7 @@
import cn.sinata.xldutils.utils.Md5
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.okgoincar.bean.LocalOrderBean
import com.okgoincar.bean.UserInfoBean
import com.okgoincar.utils.Cache.CacheUtil
@@ -66,4 +67,19 @@
    fun getTerminalName():String{
        return getKeyStr("terminalName")
    }
    fun getLocalOrderBean():LocalOrderBean?{
        var str = getKeyStr(LocalOrderBean.LOCAL_ORDER_INFO)
        if (str.isEmpty()){
            return null
        }else{
            return Gson().fromJson<LocalOrderBean>(str,LocalOrderBean::class.java)
        }
    }
    fun saveLocalOrderBean(bean: LocalOrderBean){
        putKeyStr(LocalOrderBean.LOCAL_ORDER_INFO,Gson().toJson(bean))
    }
}
app/src/main/java/com/okgoincar/utils/UtilKt.kt
@@ -24,6 +24,7 @@
import cn.sinata.xldutils.utils.ViewClickDelay.lastClickTime
import cn.sinata.xldutils.xldUtils
import com.okgoincar.base.MyApplication
import com.okgoincar.utils.Cache.CacheKey
import org.jetbrains.anko.internals.AnkoInternals
import java.lang.NumberFormatException
import java.util.*
@@ -293,11 +294,12 @@
    Log.e("OkTrip----trip", "--------" + msg)
}
fun getFormatOne(value:Double?):String{
    return  Formatter().format("%.1f",value).toString()
fun getFormatOne(value: Double?): String {
    return Formatter().format("%.1f", value).toString()
}
fun getFormatTwo(value:Double?):String{
    return  Formatter().format("%.2f",value).toString()
fun getFormatTwo(value: Double?): String {
    return Formatter().format("%.2f", value).toString()
}
//多个参数
@@ -308,15 +310,31 @@
//})
fun getNowTimeBlack(): Boolean {
    var hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY) //此时的小时
    var dayNow = Calendar.getInstance().get(Calendar.DAY_OF_MONTH)//此时的天数
    var date = CacheKey.getKeyStr("date_mode") //记录为点击切换的时间Long
    var mode = CacheKey.getKeyStr("mode_now_time") ///记录为点击切换的颜色 1 白色 2 黑色
fun getNowTimeBlack():Boolean{
    var hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)
    if (hour < 7 || hour >= 18){
    if (date.isEmpty()) {
        if (hour < 7 || hour >= 18) {
            return true
        }
        return false
    } else {
        var time: Long = date.toLong()
        var calendar = Calendar.getInstance()
        calendar.timeInMillis = time
        var day = calendar.get(Calendar.DAY_OF_MONTH)
        if (day != dayNow) {
            CacheKey.putKeyStr("date_mode", "")
            return getNowTimeBlack()
        } else {
            return mode != "1"
        }
    }
    return false
}
fun toast(s:String){
    Toast.makeText(MyApplication.appContext,s,Toast.LENGTH_SHORT).show()
fun toast(s: String) {
    Toast.makeText(MyApplication.appContext, s, Toast.LENGTH_SHORT).show()
}
app/src/main/res/drawable/mode_write.xml
New file
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <stroke
                android:width="1dp"
                android:color="@color/main_yellow" />
            <size
                android:width="64dp"
                android:height="64dp" />
        </shape>
    </item>
    <item>
        <shape
            android:shape="line"
            android:useLevel="true">
            <stroke
                android:width="1dp"
                android:color="@color/main_yellow" />
            <size android:height="64dp" />
        </shape>
    </item>
</layer-list>
app/src/main/res/drawable/mode_write_and_black.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/close_big" android:state_selected="true" />
    <item android:drawable="@mipmap/close_write_c" android:state_selected="false" />
</selector>
app/src/main/res/layout/slab_activity_main.xml
@@ -100,6 +100,8 @@
        app:layout_constraintStart_toEndOf="@+id/ll_top"
        app:layout_constraintTop_toTopOf="parent" />
    <View
        android:layout_width="0dp"
        android:layout_height="1px"
@@ -199,8 +201,8 @@
    <ImageView
        android:id="@+id/iv_head"
        android:layout_width="180dp"
        android:layout_height="180dp"
        android:layout_width="170dp"
        android:layout_height="170dp"
        android:layout_marginTop="75dp"
        android:layout_marginEnd="26dp"
        android:elevation="5dp"
@@ -281,6 +283,20 @@
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="@+id/rl_container" />
    <View
        android:id="@+id/view_mode"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:background="@drawable/mode_write_and_black"
        android:gravity="center"
        android:textSize="40sp"
        android:textColor="#F28105"
        android:textStyle="bold"
        android:layout_marginStart="38dp"
        android:layout_marginBottom="31dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
    <TextView
        android:id="@+id/ll_task"
        android:layout_width="260dp"