From a0b3598842d57f5dfb5736e8a4fff5a9d70191a5 Mon Sep 17 00:00:00 2001 From: liugl <liugl@sinata.cn> Date: 星期四, 06 八月 2020 20:55:52 +0800 Subject: [PATCH] 8.6 --- app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt | 106 +++++++++++++++----- app/src/main/res/drawable/mode_write_and_black.xml | 5 + app/src/main/java/com/okgoincar/utils/UtilKt.kt | 38 +++++-- app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt | 16 +++ app/src/main/res/layout/slab_activity_main.xml | 20 +++ app/src/main/java/com/okgoincar/bean/LocalOrderBean.java | 50 ++++++++++ app/src/main/java/com/okgoincar/utils/Cache/CacheKey.kt | 16 +++ app/src/main/res/drawable/mode_write.xml | 23 ++++ 8 files changed, 235 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt b/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt index e6a05ce..47b49a2 100644 --- a/app/src/main/java/com/okgoincar/base/MoneyBroadCastReceiver.kt +++ b/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)) } - } } \ No newline at end of file diff --git a/app/src/main/java/com/okgoincar/bean/LocalOrderBean.java b/app/src/main/java/com/okgoincar/bean/LocalOrderBean.java new file mode 100644 index 0000000..8ca6d36 --- /dev/null +++ b/app/src/main/java/com/okgoincar/bean/LocalOrderBean.java @@ -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; + } +} diff --git a/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt b/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt index 533aa97..24dd4d8 100644 --- a/app/src/main/java/com/okgoincar/slab/SlabMainActivity.kt +++ b/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) { diff --git a/app/src/main/java/com/okgoincar/utils/Cache/CacheKey.kt b/app/src/main/java/com/okgoincar/utils/Cache/CacheKey.kt index d10fde2..a53f8a4 100644 --- a/app/src/main/java/com/okgoincar/utils/Cache/CacheKey.kt +++ b/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)) + } + + } \ No newline at end of file diff --git a/app/src/main/java/com/okgoincar/utils/UtilKt.kt b/app/src/main/java/com/okgoincar/utils/UtilKt.kt index 39ebe61..be8d1f9 100644 --- a/app/src/main/java/com/okgoincar/utils/UtilKt.kt +++ b/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() } \ No newline at end of file diff --git a/app/src/main/res/drawable/mode_write.xml b/app/src/main/res/drawable/mode_write.xml new file mode 100644 index 0000000..90159fb --- /dev/null +++ b/app/src/main/res/drawable/mode_write.xml @@ -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> \ No newline at end of file diff --git a/app/src/main/res/drawable/mode_write_and_black.xml b/app/src/main/res/drawable/mode_write_and_black.xml new file mode 100644 index 0000000..b2cbb1d --- /dev/null +++ b/app/src/main/res/drawable/mode_write_and_black.xml @@ -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> \ No newline at end of file diff --git a/app/src/main/res/layout/slab_activity_main.xml b/app/src/main/res/layout/slab_activity_main.xml index 85feee2..76bac7b 100644 --- a/app/src/main/res/layout/slab_activity_main.xml +++ b/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" -- Gitblit v1.7.1