Commit d52a317c by 宁斌

BaseQMUI替換

parent 8805141a
...@@ -383,10 +383,9 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre ...@@ -383,10 +383,9 @@ public class ColdChainMainActivity extends BaseFragmentActivity<ColdChainMainPre
view.findViewById(R.id.layout_history_order).setOnClickListener(v1 -> { view.findViewById(R.id.layout_history_order).setOnClickListener(v1 -> {
CC.obtainBuilder(com.gingersoft.gsa.cloud.component.ComponentName.COMPONENT_DELIVERYPICK) CC.obtainBuilder(com.gingersoft.gsa.cloud.component.ComponentName.COMPONENT_DELIVERYPICK)
.setActionName("historyActivity") .setActionName("historyActivity")
.addParam(DeliveryPickConstans.ORDER_TYPE, 8) .addParam(DeliveryPickConstans.ORDER_TYPE, "1")
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .call();
});
pop.dismiss(); pop.dismiss();
}); });
} else { } else {
......
...@@ -7,7 +7,7 @@ import okhttp3.FormBody ...@@ -7,7 +7,7 @@ import okhttp3.FormBody
class HistoryOrderRepository private constructor(private val network: CoolWeatherNetwork) { class HistoryOrderRepository private constructor(private val network: CoolWeatherNetwork) {
suspend fun getHistoryOrderList(restaurantId: String, status: String, startDate: String, endDate: String, pageIndex: String, pageSize: String, orderType: String, orderNo: String = "", phone: String = "") = withContext(Dispatchers.IO) { suspend fun getHistoryOrderList(restaurantId: String, status: String, startDate: String, endDate: String, pageIndex: String, pageSize: String, orderType: String,orderFrom:Int, orderNo: String = "", phone: String = "") = withContext(Dispatchers.IO) {
// val builder = FormBody.Builder() // val builder = FormBody.Builder()
// .add("restaurantId", restaurantId) // .add("restaurantId", restaurantId)
// .add("status", status)//4為已完成 6為取消 // .add("status", status)//4為已完成 6為取消
...@@ -23,7 +23,7 @@ class HistoryOrderRepository private constructor(private val network: CoolWeathe ...@@ -23,7 +23,7 @@ class HistoryOrderRepository private constructor(private val network: CoolWeathe
// builder.add("orderType", orderType.toString()) // builder.add("orderType", orderType.toString())
// } // }
// val requestBody = builder.build() // val requestBody = builder.build()
val heWeather = network.getHistoryOrderList(restaurantId,startDate, endDate, phone, status, orderType, pageIndex, pageSize) val heWeather = network.getHistoryOrderList(restaurantId,startDate, endDate, phone, status, orderType,orderFrom, pageIndex, pageSize)
heWeather heWeather
} }
......
...@@ -27,6 +27,8 @@ class HistoryOrderBean( ...@@ -27,6 +27,8 @@ class HistoryOrderBean(
val orderNo: String, val orderNo: String,
@SerializedName("orderPayType") @SerializedName("orderPayType")
val orderPayType: Int, val orderPayType: Int,
@SerializedName("payType")
val payType: Int,
@SerializedName("orderStatus") @SerializedName("orderStatus")
val orderStatus: Int, val orderStatus: Int,
@SerializedName("orderType") @SerializedName("orderType")
...@@ -38,7 +40,7 @@ class HistoryOrderBean( ...@@ -38,7 +40,7 @@ class HistoryOrderBean(
@SerializedName("receiver") @SerializedName("receiver")
val `receiver`: String, val `receiver`: String,
@SerializedName("status") @SerializedName("status")
val status: Int, val status: Int, //退款状态
@SerializedName("takeFoodCode") @SerializedName("takeFoodCode")
val takeFoodCode: String, val takeFoodCode: String,
@SerializedName("takeTime") @SerializedName("takeTime")
......
...@@ -73,7 +73,7 @@ class CoolWeatherNetwork { ...@@ -73,7 +73,7 @@ class CoolWeatherNetwork {
//獲取歷史訂單 //獲取歷史訂單
suspend fun getHistoryOrderList(restaurantId: String, startTime: String, endTime: String, param: String, suspend fun getHistoryOrderList(restaurantId: String, startTime: String, endTime: String, param: String,
status: String, orderType: String, pageIndex: String, pageSize: String) = orderPayService.getHistoryOrderList(restaurantId,startTime, endTime, param, status, orderType, pageIndex, pageSize).await() status: String, orderType: String, orderFrom:Int, pageIndex: String, pageSize: String) = orderPayService.getHistoryOrderList(restaurantId,startTime, endTime, param, status, orderType,orderFrom, pageIndex, pageSize).await()
//取消物流 //取消物流
suspend fun cancelLogistics(requestBody: RequestBody) = gsposService.cancelLogistics(requestBody).await() suspend fun cancelLogistics(requestBody: RequestBody) = gsposService.cancelLogistics(requestBody).await()
......
...@@ -56,7 +56,7 @@ interface WeatherService { ...@@ -56,7 +56,7 @@ interface WeatherService {
@GET("historyOrder/getOrderList") @GET("historyOrder/getOrderList")
fun getHistoryOrderList(@Query("restaurantId") restaurantId: String, fun getHistoryOrderList(@Query("restaurantId") restaurantId: String,
@Query("startTime") startTime: String, @Query("endTime") endTime: String, @Query("param") param: String, @Query("startTime") startTime: String, @Query("endTime") endTime: String, @Query("param") param: String,
@Query("status") status: String, @Query("orderType") orderType: String, @Query("pageIndex") pageIndex: String, @Query("pageSize") pageSize: String): Call<HistoryOrderBean> @Query("status") status: String, @Query("orderType") orderType: String, @Query("orderFrom") orderFrom: Int,@Query("pageIndex") pageIndex: String, @Query("pageSize") pageSize: String): Call<HistoryOrderBean>
@POST("gsa/cancelOrder") @POST("gsa/cancelOrder")
fun cancelLogistics(@Body requestBody: RequestBody): Call<CancelLogisticsBean> fun cancelLogistics(@Body requestBody: RequestBody): Call<CancelLogisticsBean>
......
...@@ -27,6 +27,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -27,6 +27,7 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
var status = MutableLiveData("4") //按類型查詢 var status = MutableLiveData("4") //按類型查詢
var searchValue = MutableLiveData("")//按搜索內容查詢 var searchValue = MutableLiveData("")//按搜索內容查詢
var orderType = "2,7" //訂單類型 2 線上外賣訂單,7 自取訂單 var orderType = "2,7" //訂單類型 2 線上外賣訂單,7 自取訂單
var orderFrom = 0 //訂單來源 8 冷鏈用
fun getHistoryOrderList(pageIndex: String, orderNum: String = "", startDate: String, endDate: String, status: String) { fun getHistoryOrderList(pageIndex: String, orderNum: String = "", startDate: String, endDate: String, status: String) {
launch({ launch({
...@@ -37,14 +38,17 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo ...@@ -37,14 +38,17 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
} else { } else {
orderNumber = orderNum orderNumber = orderNum
} }
historyOrderRepository.getHistoryOrderList(RestaurantInfoManager.newInstance().getRestaurantId().toString(), status, startDate, endDate, pageIndex, "10", orderType, orderNumber, phone).apply { if (orderType.equals("1")) {
orderFrom = 8;
}
historyOrderRepository.getHistoryOrderList(RestaurantInfoManager.newInstance().getRestaurantId().toString(), status, startDate, endDate, pageIndex, "10", orderType, orderFrom, orderNumber, phone).apply {
if (this.data == null) { if (this.data == null) {
historyData.postValue(this) historyData.postValue(this)
} else { } else {
this.data.let { this.data.let {
if (it?.list != null && it?.list.size > 0) { // if (it?.list != null && it?.list.size > 0) {
it.list.removeAt(it.list.size - 1)//移除最後一個,最後一個是顯示總條數的 // it.list.removeAt(it.list.size - 1)//移除最後一個,最後一個是顯示總條數的
} // }
if (pageIndex == "1") { if (pageIndex == "1") {
historyData.postValue(this) historyData.postValue(this)
} else { } else {
......
...@@ -82,38 +82,30 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var ...@@ -82,38 +82,30 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var
if (stauts.equals("4")) { if (stauts.equals("4")) {
//已完成訂單 //已完成訂單
holder.iv_end.setImageResource(R.drawable.ic_has_end) holder.iv_end.setImageResource(R.drawable.ic_has_end)
setReasonViewVisvible(holder);
} else if (stauts.equals("6")) { } else if (stauts.equals("6")) {
//已取消訂單 //已取消訂單
holder.iv_end.setImageResource(R.drawable.img_cancelled) holder.iv_end.setImageResource(R.drawable.img_cancelled)
setOrderReason(holder, stauts!!, data.orderPayType, data.reasonDesc); setOrderReason(holder, data.status, data.orderPayType, data.payType, data.reasonDesc);
} }
// setViewVisableByStatus(holder, stauts!!);
} else { } else {
holder.iv_end.setImageResource(R.drawable.ic_has_end) holder.iv_end.setImageResource(R.drawable.ic_has_end)
} }
} }
private fun setViewVisiableByStatus(holder: ViewHolder, status: String) { private fun setReasonViewVisvible(holder: ViewHolder) {
when (status) { holder.tv_cancel_reason_text.visibility = View.GONE
"4" -> { holder.tv_cancel_reason.visibility = View.GONE
holder.tv_cancel_reason_text.visibility = View.GONE; holder.tv_refund_reason_text.visibility = View.GONE
holder.tv_cancel_reason.visibility = View.GONE; holder.tv_refund_reason.visibility = View.GONE
holder.tv_refund_reason_text.visibility = View.GONE; holder.tv_address_text.visibility = View.GONE
holder.tv_refund_reason.visibility = View.GONE; holder.tv_address.visibility = View.GONE
}
"6" -> {
holder.tv_cancel_reason_text.visibility = View.VISIBLE;
holder.tv_cancel_reason.visibility = View.VISIBLE;
holder.tv_refund_reason_text.visibility = View.VISIBLE;
holder.tv_refund_reason.visibility = View.VISIBLE;
}
}
} }
private fun setOrderReason(holder: ViewHolder, status: String, orderPayType: Int, reasonDesc: String) { private fun setOrderReason(holder: ViewHolder, refundStatus: Int, orderPayType: Int, payType: Int, reasonDesc: String) {
var refundReason = getRefundReasonByStatus(status, orderPayType); var refundReason = getRefundReasonByStatus(refundStatus, orderPayType, payType);
if (!TextUtils.isEmpty(refundReason)) { if (!TextUtils.isEmpty(refundReason)) {
if (status.equals("5")) { if (refundStatus == 5) {
holder.tv_refund_reason.setTextColor(getColor(R.color.green_400)) holder.tv_refund_reason.setTextColor(getColor(R.color.green_400))
} else { } else {
holder.tv_refund_reason.setTextColor(getColor(R.color.red)) holder.tv_refund_reason.setTextColor(getColor(R.color.red))
...@@ -146,18 +138,25 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var ...@@ -146,18 +138,25 @@ class HistoryOrderAdapter(var stauts: String?, private val context: Context, var
/** /**
* 獲取退款說明 * 獲取退款說明
*/ */
private fun getRefundReasonByStatus(status: String, orderPayType: Int): String { private fun getRefundReasonByStatus(refundStatus: Int, orderPayType: Int, payType: Int): String {
when (status) { when (refundStatus) {
"5" -> { 5 -> {
return "退款完成" return "退款完成"
} }
else -> { else -> {
when (orderPayType) { when (payType) {
PayTypeContract.PAY_METHOD_ID_1021 -> { //只有Google pay需要5-7天,其他支付方式都是秒退 1 -> {
return "退款中(預計5-7個工作日退回原賬戶)" return ""
} }
else -> { else -> {
return "無"; when (orderPayType) {
PayTypeContract.PAY_METHOD_ID_1021 -> { //Google pay需要5-7天
return "退款中(預計5-7個工作日退回原賬戶)"
}
else -> {
return "退款中(預計1-3個工作日退回原賬戶)"
}
}
} }
} }
} }
......
...@@ -29,7 +29,7 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) { ...@@ -29,7 +29,7 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(requireActivity().viewModelStore, InjectorUtil.getHistoryModelFactory())[HistoryOrderViewModel::class.java].apply { viewModel = ViewModelProvider(requireActivity().viewModelStore, InjectorUtil.getHistoryModelFactory())[HistoryOrderViewModel::class.java].apply {
historyData.observe(viewLifecycleOwner, Observer{ it -> historyData.observe(viewLifecycleOwner, Observer { it ->
cancelDialogForLoading() cancelDialogForLoading()
refresh_layout.finishRefresh() refresh_layout.finishRefresh()
refresh_layout.finishLoadMore() refresh_layout.finishLoadMore()
...@@ -47,7 +47,11 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) { ...@@ -47,7 +47,11 @@ class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
if (it2.data != null && it2.data!!.isNotEmpty()) { if (it2.data != null && it2.data!!.isNotEmpty()) {
//顯示彈窗 //顯示彈窗
context?.let { context -> context?.let { context ->
OtherOrderUtils.showOrderDetailsDialog(context, it2, it.status, it.orderType, true) { _, _, _ -> var reasonDesc = it.reasonDesc
if (reasonDesc == null) {
reasonDesc = "";
}
OtherOrderUtils.showOrderDetailsDialog(context, it2, it.orderStatus, it.orderType,it.payType, it.status, reasonDesc, true) { _, _, _ ->
//重印 //重印
showLoading() showLoading()
viewModel.printOrder(context, it) { viewModel.printOrder(context, it) {
......
...@@ -6,6 +6,7 @@ import android.media.AudioAttributes ...@@ -6,6 +6,7 @@ import android.media.AudioAttributes
import android.media.AudioManager import android.media.AudioManager
import android.media.SoundPool import android.media.SoundPool
import android.os.Build import android.os.Build
import android.text.TextUtils
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
...@@ -13,30 +14,40 @@ import androidx.core.content.ContextCompat ...@@ -13,30 +14,40 @@ import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.gingersoft.gsa.cloud.app.GsaCloudApplication
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil import com.gingersoft.gsa.cloud.common.utils.MoneyUtil
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil import com.gingersoft.gsa.cloud.common.utils.other.TextUtil
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract
import com.gingersoft.gsa.cloud.ui.utils.DialogUtils import com.gingersoft.gsa.cloud.ui.utils.DialogUtils
import com.gingersoft.gsa.delivery_pick_mode.R import com.gingersoft.gsa.delivery_pick_mode.R
import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.BillBean import com.gingersoft.gsa.delivery_pick_mode.data.model.bean.BillBean
import com.gingersoft.gsa.delivery_pick_mode.databinding.LayoutOrderInfoDialogNewBinding import com.gingersoft.gsa.delivery_pick_mode.databinding.LayoutOrderInfoDialogNewBinding
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.HistoryOrderAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.PayBillAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.PayBillAdapter
import com.jess.arms.utils.ArmsUtils import com.jess.arms.utils.ArmsUtils
import java.lang.Double.parseDouble import java.lang.Double.parseDouble
object OtherOrderUtils { object OtherOrderUtils {
fun showOrderDetailsDialog(context: Context, data: OrderDetails, orderStuats: Int, orderType: Int, isHistory: Boolean = false, listenter: ((view: View, data: OrderDetails.DataBean, dialog: Dialog) -> Unit)?) { fun showOrderDetailsDialog(context: Context, data: OrderDetails, orderStuats: Int, orderType: Int, payType: Int, refundStatus: Int, reasonDesc: String = "", isHistory: Boolean = false, listenter: ((view: View, data: OrderDetails.DataBean, dialog: Dialog) -> Unit)?) {
object : DialogUtils(context, R.layout.layout_order_info_dialog_new) { object : DialogUtils(context, R.layout.layout_order_info_dialog_new) {
override fun initLayout(hepler: ViewHepler, dialog: Dialog) { override fun initLayout(hepler: ViewHepler, dialog: Dialog) {
if (data.data != null) { if (data.data != null) {
val tvStatus = hepler.getView<TextView>(R.id.tv_order_state) val tvStatus = hepler.getView<TextView>(R.id.tv_order_state)
val ivOrderState = hepler.getView<ImageView>(R.id.iv_order_state)
var tv_receive_address_text = hepler.getView<TextView>(R.id.tv_receive_address_text)
var tv_receive_address = hepler.getView<TextView>(R.id.tv_receive_address)
var tv_cancel_reason_text = hepler.getView<TextView>(R.id.tv_cancel_reason_text)
var tv_cancel_reason = hepler.getView<TextView>(R.id.tv_cancel_reason)
var tv_refund_reason_text = hepler.getView<TextView>(R.id.tv_refund_reason_text)
var tv_refund_reason = hepler.getView<TextView>(R.id.tv_refund_reason)
val orderData = data.data!![0] val orderData = data.data!![0]
val layoutOrderInfoDialogBinding: LayoutOrderInfoDialogNewBinding = DataBindingUtil.bind(hepler.contentView)!! val layoutOrderInfoDialogBinding: LayoutOrderInfoDialogNewBinding = DataBindingUtil.bind(hepler.contentView)!!
var totalAmount = orderData.TOTAL_AMOUNT!!.toDouble() var totalAmount = orderData.TOTAL_AMOUNT!!.toDouble()
orderData.couponList?.let { orderData.couponList?.let {
for(coupon in it){ for (coupon in it) {
totalAmount = MoneyUtil.sub(totalAmount, coupon.discount_amount) totalAmount = MoneyUtil.sub(totalAmount, coupon.discount_amount)
} }
} }
...@@ -92,6 +103,23 @@ object OtherOrderUtils { ...@@ -92,6 +103,23 @@ object OtherOrderUtils {
cancelBtnContent = "取消訂單" cancelBtnContent = "取消訂單"
} }
} }
when (orderStuats) {
4 -> {
//已完成訂單
ivOrderState.setImageResource(R.drawable.ic_has_end)
tv_cancel_reason_text.visibility = View.GONE
tv_cancel_reason.visibility = View.GONE
tv_refund_reason_text.visibility = View.GONE
tv_refund_reason.visibility = View.GONE
tv_receive_address_text.visibility = View.GONE
tv_receive_address.visibility = View.GONE
}
6 -> {
//已取消訂單
ivOrderState.setImageResource(R.drawable.img_cancelled)
setOrderReason(hepler, orderStuats, refundStatus, orderType,payType, reasonDesc)
}
}
// val payName = StringBuffer() // val payName = StringBuffer()
// if (orderData.payMultiple != null) { // if (orderData.payMultiple != null) {
// for (payMethod in orderData.payMultiple!!) { // for (payMethod in orderData.payMultiple!!) {
...@@ -179,7 +207,78 @@ object OtherOrderUtils { ...@@ -179,7 +207,78 @@ object OtherOrderUtils {
}.setWidth((ArmsUtils.getScreenWidth(context) * 0.9).toInt()) }.setWidth((ArmsUtils.getScreenWidth(context) * 0.9).toInt())
.setHeight((ArmsUtils.getScreenHeidth(context) * 0.9).toInt()) .setHeight((ArmsUtils.getScreenHeidth(context) * 0.9).toInt())
.show() .show()
}
private fun setOrderReason(holder: DialogUtils.ViewHepler, orderStatus: Int, refundStatus: Int, orderPayType: Int,payType: Int, reasonDesc: String) {
var tv_address_text = holder.getView<TextView>(R.id.tv_receive_address_text)
var tv_address = holder.getView<TextView>(R.id.tv_receive_address)
var tv_cancel_reason_text = holder.getView<TextView>(R.id.tv_cancel_reason_text)
var tv_cancel_reason = holder.getView<TextView>(R.id.tv_cancel_reason)
var tv_refund_reason_text = holder.getView<TextView>(R.id.tv_refund_reason_text)
var tv_refund_reason = holder.getView<TextView>(R.id.tv_refund_reason)
var refundReason = getRefundReasonByStatus(refundStatus, orderPayType,payType);
if (!TextUtils.isEmpty(refundReason)) {
if (refundStatus == 5) {
tv_refund_reason.setTextColor(getColor(R.color.green_400))
} else {
tv_refund_reason.setTextColor(getColor(R.color.red))
}
tv_refund_reason.setText(refundReason)
tv_refund_reason_text.setText("退款進度:")
tv_refund_reason_text.visibility = View.VISIBLE
tv_refund_reason.visibility = View.VISIBLE
tv_address_text.visibility = View.GONE
tv_address.visibility = View.GONE
} else {
tv_refund_reason_text.visibility = View.GONE
tv_refund_reason.visibility = View.GONE
tv_address_text.visibility = View.VISIBLE
tv_address.visibility = View.VISIBLE
}
if (reasonDesc != null) {
tv_cancel_reason.setText(reasonDesc)
tv_cancel_reason_text.setText("取消原因:")
tv_cancel_reason_text.visibility = View.VISIBLE
tv_cancel_reason.visibility = View.VISIBLE
} else {
tv_cancel_reason_text.visibility = View.GONE
tv_cancel_reason.visibility = View.GONE
}
}
/**
* 獲取退款說明
*/
private fun getRefundReasonByStatus(refundStatus: Int, orderPayType: Int,payType: Int): String {
when (refundStatus) {
5 -> {
return "退款完成"
}
else -> {
when (payType) {
1 -> {
return "無"
}
else -> {
when (orderPayType) {
PayTypeContract.PAY_METHOD_ID_1021 -> { //Google pay需要5-7天
return "退款中(預計5-7個工作日退回原賬戶)"
}
else -> {
return "退款中(預計1-3個工作日退回原賬戶)"
}
}
}
}
}
}
return "";
}
private fun getColor(color: Int): Int {
return ContextCompat.getColor(GsaCloudApplication.getAppContext(), color)
} }
private var soundPool: SoundPool? = null private var soundPool: SoundPool? = null
......
...@@ -122,6 +122,14 @@ ...@@ -122,6 +122,14 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_total_amount_text" /> app:layout_constraintTop_toBottomOf="@id/tv_total_amount_text" />
<ImageView
android:id="@+id/iv_order_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dp_10"
app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/ic_has_end"/>
<TextView <TextView
android:id="@+id/tv_take_food_code" android:id="@+id/tv_take_food_code"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -394,13 +402,69 @@ ...@@ -394,13 +402,69 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_delivery_num_text" /> app:layout_constraintTop_toTopOf="@id/tv_delivery_num_text" />
<TextView
android:id="@+id/tv_cancel_reason_text"
style="@style/otherOrderReceiving_title_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginTop="@dimen/dp_10"
android:visibility="gone"
android:text="取消原因: "
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_delivery_num_text" />
<TextView
android:id="@+id/tv_cancel_reason"
style="@style/otherOrderReceiving_information_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
android:gravity="left"
android:textColor="@color/red_600"
android:textSize="@dimen/sp_14"
android:text="商戶未確定"
android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/tv_cancel_reason_text"
app:layout_constraintLeft_toRightOf="@id/tv_cancel_reason_text"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tv_refund_reason_text"
style="@style/otherOrderReceiving_title_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginTop="@dimen/dp_10"
android:text="退款進度: "
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_cancel_reason_text" />
<TextView
android:id="@+id/tv_refund_reason"
style="@style/otherOrderReceiving_information_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
android:gravity="left"
android:layout_marginTop="@dimen/dp_5"
android:textColor="@color/green_400"
android:textSize="@dimen/sp_14"
android:text="退款完成"
android:visibility="gone"
app:layout_constraintTop_toTopOf="@+id/tv_refund_reason_text"
app:layout_constraintBottom_toBottomOf="@+id/tv_refund_reason_text"
app:layout_constraintLeft_toRightOf="@id/tv_refund_reason_text"
app:layout_constraintRight_toRightOf="parent" />
<View <View
android:id="@+id/line_info_bottom" android:id="@+id/line_info_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_10" android:layout_height="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:background="@color/color_ef" android:background="@color/color_ef"
app:layout_constraintTop_toBottomOf="@id/tv_delivery_num" /> app:layout_constraintTop_toBottomOf="@id/tv_refund_reason_text" />
<TextView <TextView
android:id="@+id/tv_food_details_text" android:id="@+id/tv_food_details_text"
...@@ -491,5 +555,4 @@ ...@@ -491,5 +555,4 @@
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>
\ No newline at end of file
...@@ -32,6 +32,8 @@ import com.jess.arms.base.BaseActivity; ...@@ -32,6 +32,8 @@ import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.StatusBarUtil;
import butterknife.BindView; import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -83,12 +85,6 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements ...@@ -83,12 +85,6 @@ public class DownloadActivity extends BaseActivity<DownloadPresenter> implements
} }
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTransparent(this);
super.onCreate(savedInstanceState);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) { public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.download_data_activity_download; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0 return R.layout.download_data_activity_download; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
} }
......
...@@ -4,6 +4,7 @@ import android.animation.AnimatorSet; ...@@ -4,6 +4,7 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.PersistableBundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.animation.Animation; import android.view.animation.Animation;
...@@ -36,13 +37,12 @@ import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.GuideAdapter; ...@@ -36,13 +37,12 @@ import com.gingersoft.gsa.cloud.login.mvp.ui.adapter.GuideAdapter;
import com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator; import com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIStatusBarHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
......
...@@ -2,142 +2,138 @@ ...@@ -2,142 +2,138 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:fitsSystemWindows="true"
android:background="@color/white">
<RelativeLayout <RelativeLayout
android:id="@+id/content_view" android:id="@+id/content_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView
android:id="@+id/tv_welcome_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_80"
android:text="多功能管理,讓管理更輕鬆"
android:textColor="@color/theme_color"
android:textSize="@dimen/sp_22"
android:textStyle="bold" />
<ImageView <TextView
android:id="@+id/iv_welcome_center" android:id="@+id/tv_welcome_title"
android:layout_width="@dimen/dp_203" android:layout_width="wrap_content"
android:layout_height="@dimen/dp_256" android:layout_height="wrap_content"
android:layout_below="@+id/tv_welcome_title" android:layout_centerHorizontal="true"
android:layout_centerHorizontal="true" android:layout_marginTop="@dimen/dp_80"
android:layout_marginTop="@dimen/dp_60" android:text="多功能管理,讓管理更輕鬆"
android:src="@mipmap/png_welcome_center" /> android:textColor="@color/theme_color"
android:textSize="@dimen/sp_22"
android:textStyle="bold" />
<TextView <ImageView
android:id="@+id/iv_welcome_logo" android:id="@+id/iv_welcome_center"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_203"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_256"
android:layout_below="@+id/iv_welcome_center" android:layout_below="@+id/tv_welcome_title"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_30" android:layout_marginTop="@dimen/dp_60"
android:drawableTop="@mipmap/ic_launcher" android:src="@mipmap/png_welcome_center" />
android:text="Ricepon POS"
android:textColor="@color/theme_color"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
<ImageView <TextView
android:id="@+id/iv_welcome_bottom" android:id="@+id/iv_welcome_logo"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_below="@+id/iv_welcome_center"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:src="@mipmap/png_welcome_bottom" /> android:layout_marginTop="@dimen/dp_30"
</RelativeLayout> android:drawableTop="@mipmap/ic_launcher"
android:text="Ricepon POS"
android:textColor="@color/theme_color"
android:textSize="@dimen/sp_16"
android:textStyle="bold" />
<androidx.constraintlayout.widget.ConstraintLayout <ImageView
android:id="@+id/cl_guide_layout" android:id="@+id/iv_welcome_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:background="@mipmap/pic_guide_bg" android:layout_alignParentBottom="true"
android:visibility="gone"> android:layout_centerHorizontal="true"
android:src="@mipmap/png_welcome_bottom" />
<androidx.viewpager2.widget.ViewPager2 </RelativeLayout>
android:id="@+id/vp2_guide"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/guide_magic_indicator" android:id="@+id/cl_guide_layout"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="@dimen/dp_5" android:layout_height="match_parent"
android:layout_gravity="bottom|center_horizontal" android:background="@mipmap/pic_guide_bg"
android:layout_marginBottom="@dimen/dp_10" android:visibility="gone">
app:circle_rect_corner="@dimen/dp_3"
app:circle_rect_itemHeight="@dimen/dp_5"
app:circle_rect_itemWidth="@dimen/dp_14"
app:circle_rect_radius="@dimen/dp_3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_goneMarginBottom="@dimen/dp_15"
app:normal_color="@color/white"
app:selected_color="@color/white"
app:spacing="@dimen/dp_5"
app:style="circle_rect" />
<ImageView <androidx.viewpager2.widget.ViewPager2
android:id="@+id/iv_guide_close" android:id="@+id/vp2_guide"
android:layout_width="@dimen/dp_42" android:layout_width="match_parent"
android:layout_height="@dimen/dp_42" android:layout_height="match_parent" />
android:padding="@dimen/dp_12"
android:src="@drawable/ic_guide_close"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_guide_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:text="為您搭建優良高效管理平台"
android:textColor="@color/white"
android:textSize="@dimen/dp_13"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@id/tv_guide_title"
app:layout_constraintTop_toBottomOf="@id/tv_guide_title" />
<TextView <com.gingersoft.gsa.cloud.ui.widget.Indicator.UIndicator
android:id="@+id/tv_guide_title" android:id="@+id/guide_magic_indicator"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_5"
android:layout_marginLeft="@dimen/dp_18" android:layout_gravity="bottom|center_horizontal"
android:text="多終端雲同步,輕松管理所有" android:layout_marginBottom="@dimen/dp_10"
android:textColor="@color/white" app:circle_rect_corner="@dimen/dp_3"
android:textSize="@dimen/dp_19" app:circle_rect_itemHeight="@dimen/dp_5"
app:layout_constraintBottom_toTopOf="@id/tv_guide_details" app:circle_rect_itemWidth="@dimen/dp_14"
app:layout_constraintLeft_toLeftOf="parent" app:circle_rect_radius="@dimen/dp_3"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintVertical_bias="0.12" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintVertical_chainStyle="packed" /> app:layout_constraintRight_toRightOf="parent"
app:layout_goneMarginBottom="@dimen/dp_15"
app:normal_color="@color/white"
app:selected_color="@color/white"
app:spacing="@dimen/dp_5"
app:style="circle_rect" />
<TextView <ImageView
android:id="@+id/tv_experience" android:id="@+id/iv_guide_close"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_42"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_42"
android:layout_marginBottom="@dimen/dp_15" android:padding="@dimen/dp_12"
android:background="@drawable/shape_experience_bg" android:src="@drawable/ic_guide_close"
android:paddingLeft="@dimen/dp_28" app:layout_constraintRight_toRightOf="parent"
android:paddingTop="@dimen/dp_10" app:layout_constraintTop_toTopOf="parent" />
android:paddingRight="@dimen/dp_28"
android:paddingBottom="@dimen/dp_10"
android:text="立即體驗"
android:textColor="@color/white"
android:textSize="@dimen/dp_14"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/guide_magic_indicator"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<TextView
android:id="@+id/tv_guide_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_14"
android:text="為您搭建優良高效管理平台"
android:textColor="@color/white"
android:textSize="@dimen/dp_13"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@id/tv_guide_title"
app:layout_constraintTop_toBottomOf="@id/tv_guide_title" />
</androidx.constraintlayout.widget.ConstraintLayout> <TextView
android:id="@+id/tv_guide_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_18"
android:text="多終端雲同步,輕松管理所有"
android:textColor="@color/white"
android:textSize="@dimen/dp_19"
app:layout_constraintBottom_toTopOf="@id/tv_guide_details"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.12"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/tv_experience"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_15"
android:background="@drawable/shape_experience_bg"
android:paddingLeft="@dimen/dp_28"
android:paddingTop="@dimen/dp_10"
android:paddingRight="@dimen/dp_28"
android:paddingBottom="@dimen/dp_10"
android:text="立即體驗"
android:textColor="@color/white"
android:textSize="@dimen/dp_14"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/guide_magic_indicator"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout> </FrameLayout>
\ No newline at end of file
...@@ -4,8 +4,6 @@ ...@@ -4,8 +4,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/theme_white_color" android:background="@color/theme_white_color"
android:fillViewport="true"
android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
...@@ -185,7 +183,6 @@ ...@@ -185,7 +183,6 @@
app:layout_constraintTop_toBottomOf="@id/rb_auto_login" app:layout_constraintTop_toBottomOf="@id/rb_auto_login"
app:layout_constraintTop_toTopOf="@id/rb_auto_login" /> app:layout_constraintTop_toTopOf="@id/rb_auto_login" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
......
...@@ -47,5 +47,9 @@ public interface SettlementReportContract { ...@@ -47,5 +47,9 @@ public interface SettlementReportContract {
Observable<SendSettlement> sendSettlement(RequestBody requestBody); Observable<SendSettlement> sendSettlement(RequestBody requestBody);
Observable<BaseResult> getSettlementReport(int restaurantId); Observable<BaseResult> getSettlementReport(int restaurantId);
Observable<BaseResult> addHywebPosSettlementOperation();
Observable<BaseResult> updateHywebPosSettlementOperation(RequestBody requestBody);
} }
} }
...@@ -4,6 +4,7 @@ import android.app.Application; ...@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement; import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.service.MainService;
import com.gingersoft.gsa.cloud.main.mvp.model.service.SettlementService; import com.gingersoft.gsa.cloud.main.mvp.model.service.SettlementService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
...@@ -60,4 +61,17 @@ public class SettlementReportModel extends BaseModel implements SettlementReport ...@@ -60,4 +61,17 @@ public class SettlementReportModel extends BaseModel implements SettlementReport
return mRepositoryManager.obtainRetrofitService(SettlementService.class) return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.getSettlementReport(restaurantId); .getSettlementReport(restaurantId);
} }
@Override
public Observable<BaseResult> addHywebPosSettlementOperation() {
return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.addHywebPosSettlementOperation();
}
@Override
public Observable<BaseResult> updateHywebPosSettlementOperation(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SettlementService.class)
.updateHywebPosSettlementOperation(requestBody);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
import com.gingersoft.gsa.cloud.common.core.table.TableManagerItem;
import com.qmuiteam.qmui.widget.section.QMUISection;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-01-25 15:10
* @更新時間: 2021-01-25 15:10
* @描述:
*/
@Data
public class OriginalKitchenPrjBean implements QMUISection.Model<OriginalKitchenPrjBean>{
private Bitmap bitmap;
@Override
public OriginalKitchenPrjBean cloneForDiff() {
return null;
}
@Override
public boolean isSameItem(OriginalKitchenPrjBean other) {
return false;
}
@Override
public boolean isSameContent(OriginalKitchenPrjBean other) {
return false;
}
}
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import android.graphics.Bitmap;
import com.qmuiteam.qmui.widget.section.QMUISection;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-01-25 15:10
* @更新時間: 2021-01-25 15:10
* @描述:
*/
@Data
public class OriginalKitchenPrjDirectoryBean implements QMUISection.Model<OriginalKitchenPrjDirectoryBean>{
private String directoryName;
@Override
public OriginalKitchenPrjDirectoryBean cloneForDiff() {
return null;
}
@Override
public boolean isSameItem(OriginalKitchenPrjDirectoryBean other) {
return false;
}
@Override
public boolean isSameContent(OriginalKitchenPrjDirectoryBean other) {
return false;
}
}
...@@ -28,4 +28,10 @@ public interface SettlementService { ...@@ -28,4 +28,10 @@ public interface SettlementService {
@GET("ricepon-report/api/restaurantOperation/report" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("ricepon-report/api/restaurantOperation/report" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getSettlementReport(@Query("restaurantId") int restaurantId); Observable<BaseResult> getSettlementReport(@Query("restaurantId") int restaurantId);
@POST("posPay/addOperation" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addHywebPosSettlementOperation();
@POST("posPay/updateOperation" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateHywebPosSettlementOperation(@Body RequestBody requestBody);
} }
...@@ -23,7 +23,9 @@ import com.jess.arms.integration.AppManager; ...@@ -23,7 +23,9 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
...@@ -163,7 +165,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -163,7 +165,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
public void addSettlementOperation(int restaurantId) { public void addSettlementOperation(int restaurantId) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId",String.valueOf(restaurantId)) .add("restaurantId", String.valueOf(restaurantId))
.build(); .build();
mModel.addSettlementOperation() mModel.addSettlementOperation()
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -182,19 +184,19 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -182,19 +184,19 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
@Override @Override
public void onPosSuccess(HywebPosResponse response) { public void onPosSuccess(HywebPosResponse response) {
mRootView.showMessage("清機成功!"); mRootView.showMessage("清機成功!");
updateSettlementOperation(restaurantId, GsonUtils.GsonString(response),1); updateSettlementOperation(restaurantId, GsonUtils.GsonString(response), 1);
} }
@Override @Override
public void onPosException(Exception e) { public void onPosException(Exception e) {
mRootView.showMessage("清機Exception :"+e.getMessage()); mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(),0); updateSettlementOperation(restaurantId, e.getMessage(), 0);
} }
@Override @Override
public void onPosInvalid(String e) { public void onPosInvalid(String e) {
mRootView.showMessage(e); mRootView.showMessage(e);
updateSettlementOperation(restaurantId, e,2); updateSettlementOperation(restaurantId, e, 2);
} }
@Override @Override
...@@ -214,16 +216,16 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -214,16 +216,16 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
mRootView.showMessage("調起POS清機失敗: "+t.getMessage()); mRootView.showMessage("調起POS清機失敗: " + t.getMessage());
} }
}); });
} }
public void updateSettlementOperation(int restaurantId,String content,int status) { public void updateSettlementOperation(int restaurantId, String content, int status) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId",String.valueOf(restaurantId)) .add("restaurantId", String.valueOf(restaurantId))
.add("content",content) .add("content", content)
.add("status",String.valueOf(status)) .add("status", String.valueOf(status))
.build(); .build();
mModel.updateSettlementOperation(requestBody) mModel.updateSettlementOperation(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -238,7 +240,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -238,7 +240,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) { if (info != null && info.isSuccess()) {
mRootView.showMessage("更新清機狀態成功"); mRootView.showMessage("更新清機狀態成功");
}else { } else {
mRootView.showMessage("更新清機狀態無效"); mRootView.showMessage("更新清機狀態無效");
} }
} }
...@@ -246,12 +248,12 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -246,12 +248,12 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
mRootView.showMessage("更新清機狀態失敗: "+t.getMessage()); mRootView.showMessage("更新清機狀態失敗: " + t.getMessage());
} }
}); });
} }
public void clearHeartbeat(){ public void clearHeartbeat() {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", RestaurantInfoManager.newInstance().getRestaurantId() + "") .add("restaurantId", RestaurantInfoManager.newInstance().getRestaurantId() + "")
.build(); .build();
...@@ -272,25 +274,25 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -272,25 +274,25 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
} }
public void updateAPK(int type, String downApkURL) { public void updateAPK(int type, String downApkURL) {
if(type == 4 || type == 5){ if (type == 4 || type == 5) {
if(type == 4){ if (type == 4) {
try { try {
DeviceUtils.launchAppDetail(IActivity, mApplication.getPackageName(), "com.android.vending"); DeviceUtils.launchAppDetail(IActivity, mApplication.getPackageName(), "com.android.vending");
} catch (Exception e) { } catch (Exception e) {
//跳转goole play下载app //跳转goole play下载app
CC.obtainBuilder(ComponentName.COMPONENT_WEBVIEW) CC.obtainBuilder(ComponentName.COMPONENT_WEBVIEW)
.setActionName("openWebActivity") .setActionName("openWebActivity")
.addParam(WebviewHelper.TYPE_KEY,downApkURL) .addParam(WebviewHelper.TYPE_KEY, downApkURL)
.addParam(WebviewHelper.URL_KEY,WebviewHelper.RIGHT_TYPE_REFRESH) .addParam(WebviewHelper.URL_KEY, WebviewHelper.RIGHT_TYPE_REFRESH)
.addParam(WebviewHelper.RIGHT_IMG_TYPE,WebviewHelper.RIGHT_TYPE_REFRESH) .addParam(WebviewHelper.RIGHT_IMG_TYPE, WebviewHelper.RIGHT_TYPE_REFRESH)
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
}); });
} }
}else{ } else {
try { try {
DeviceUtils.launchAppDetail(IActivity,mApplication.getPackageName(), "com.android.vending"); DeviceUtils.launchAppDetail(IActivity, mApplication.getPackageName(), "com.android.vending");
} catch (Exception e) { } catch (Exception e) {
Intent intent = new Intent(); Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW"); intent.setAction("android.intent.action.VIEW");
......
...@@ -5,8 +5,12 @@ import android.app.Application; ...@@ -5,8 +5,12 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract; import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementContract;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
...@@ -20,6 +24,8 @@ import io.reactivex.annotations.NonNull; ...@@ -20,6 +24,8 @@ import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
/** /**
...@@ -45,6 +51,9 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model, ...@@ -45,6 +51,9 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public SettlementPresenter(SettlementContract.Model model, SettlementContract.View rootView) { public SettlementPresenter(SettlementContract.Model model, SettlementContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -59,7 +68,7 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model, ...@@ -59,7 +68,7 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
this.mApplication = null; this.mApplication = null;
} }
public void getSettlementReport() { public void getSettlementReport(int settlementType) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId(); int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.getSettlementReport(restaurantId) mModel.getSettlementReport(restaurantId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -85,4 +94,5 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model, ...@@ -85,4 +94,5 @@ public class SettlementPresenter extends BasePresenter<SettlementContract.Model,
} }
}); });
} }
} }
...@@ -7,12 +7,16 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult; ...@@ -7,12 +7,16 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract; import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement; import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity; import com.gingersoft.gsa.cloud.main.mvp.ui.activity.SettlementReportActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItem5Adapter; import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItem5Adapter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter; import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.SettlementReportItemAdapter;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3; import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem5; import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem5;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
...@@ -209,7 +213,97 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon ...@@ -209,7 +213,97 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
}); });
} }
public void getSettlementReport() { public void addSettlementOperation(int restaurantId) {
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.addHywebPosSettlementOperation()
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("調起POS清機中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
if (info.getData() != null) {
PosPay.settlement(IActivity, mRootView, new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
mRootView.showMessage("清機成功!");
updateSettlementOperation(restaurantId, GsonUtils.GsonString(response), 1);
}
@Override
public void onPosException(Exception e) {
mRootView.showMessage("清機Exception :" + e.getMessage());
updateSettlementOperation(restaurantId, e.getMessage(), 0);
}
@Override
public void onPosInvalid(String e) {
mRootView.showMessage(e);
updateSettlementOperation(restaurantId, e, 2);
}
@Override
public void onUpdateStatusSuccess(HywebPosResponse response) {
}
@Override
public void onUpdateStatusError(Throwable e) {
}
});
}
} else {
mRootView.showMessage("調起POS清機失敗");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showMessage("調起POS清機失敗: " + t.getMessage());
}
});
}
public void updateSettlementOperation(int restaurantId, String content, int status) {
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.add("content", content)
.add("status", String.valueOf(status))
.build();
mModel.updateHywebPosSettlementOperation(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
mRootView.showMessage("更新清機狀態成功");
} else {
mRootView.showMessage("更新清機狀態無效");
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showMessage("更新清機狀態失敗: " + t.getMessage());
}
});
}
public void getSettlementReport(int settlementType) {
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId(); int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
mModel.getSettlementReport(restaurantId) mModel.getSettlementReport(restaurantId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
......
...@@ -34,6 +34,7 @@ import com.gingersoft.gsa.cloud.common.function.FunctionManager; ...@@ -34,6 +34,7 @@ import com.gingersoft.gsa.cloud.common.function.FunctionManager;
import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpBean; import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpBean;
import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpStrategy; import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpStrategy;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.encryption.Aes; import com.gingersoft.gsa.cloud.common.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.common.utils.other.SPUtils; import com.gingersoft.gsa.cloud.common.utils.other.SPUtils;
...@@ -224,15 +225,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -224,15 +225,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "複製Token")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "複製Token"));
// mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌")); // mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌"));
// mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "廚房單原圖"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_mall_center, "商城中心")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_mall_center, "商城中心"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_about_us, "關於我們")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_about_us, "關於我們"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_password, "修改密碼")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_password, "修改密碼"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "設置")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "設置"));
} }
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "廚房單原圖"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "查看日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "上傳日誌")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "上傳日誌"));
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "清機")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "清機"));
if (AppDevices.isHywebPos()) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_settlement_report, "N5清機"));
}
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "切換環境")); mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "切換環境"));
} }
...@@ -260,9 +264,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -260,9 +264,18 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
cm.setPrimaryClip(label); cm.setPrimaryClip(label);
ToastUtils.show(mContext, "已複製"); ToastUtils.show(mContext, "已複製");
break; break;
case "清機": case "清機": {
launchActivity(new Intent(mContext, SettlementActivity.class)); Intent intent = new Intent(this, SettlementActivity.class);
break; intent.putExtra(SettlementActivity.SETTLEMENT_TYPE_TAG, SettlementActivity.SETTLEMENT_TYPE_NOMAL);
startActivity(intent);
}
break;
case "N5清機": {
Intent intent = new Intent(this, SettlementActivity.class);
intent.putExtra(SettlementActivity.SETTLEMENT_TYPE_TAG, SettlementActivity.SETTLEMENT_TYPE_HYWEB_POS);
startActivity(intent);
}
break;
case "查看日誌": case "查看日誌":
launchActivity(new Intent(mContext, LookLogActivity.class)); launchActivity(new Intent(mContext, LookLogActivity.class));
break; break;
...@@ -291,7 +304,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -291,7 +304,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager"); List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager");
managerFuncations.add(new Function(172, 163, 5, "N5清機", R.drawable.ic_expand_list, 0));
managerFuncations.add(new Function(171, 163, 5, "配置列表", R.drawable.ic_expand_list, 0)); managerFuncations.add(new Function(171, 163, 5, "配置列表", R.drawable.ic_expand_list, 0));
// managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0)); // managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0));
// managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0)); // managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0));
...@@ -374,9 +386,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -374,9 +386,6 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
private void functionClick(String name, int status) { private void functionClick(String name, int status) {
switch (name) { switch (name) {
case "N5清機":
mPresenter.addSettlementOperation(RestaurantInfoManager.newInstance().getRestaurantId());
break;
case "餐檯模式": case "餐檯模式":
CC.obtainBuilder(ComponentName.COMPONENT_TABLE) CC.obtainBuilder(ComponentName.COMPONENT_TABLE)
.setActionName("showTableActivity") .setActionName("showTableActivity")
......
...@@ -6,7 +6,6 @@ import android.os.Bundle; ...@@ -6,7 +6,6 @@ import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
...@@ -14,10 +13,11 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -14,10 +13,11 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.core.table.TableManagerItem;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerOriginalPrintPaperComponent;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.OriginalKitchenPrjBean;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.OriginalKitchenPrjSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.recylcler.event.OnRecyclerItemClickListener; import com.gingersoft.gsa.cloud.ui.recylcler.event.OnRecyclerItemClickListener;
import com.gingersoft.gsa.cloud.ui.recylcler.event.RecyItemTouchHelperCallback; import com.gingersoft.gsa.cloud.ui.recylcler.event.RecyItemTouchHelperCallback;
...@@ -59,6 +59,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -59,6 +59,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
@BindView(R2.id.section_kitchen_prj) @BindView(R2.id.section_kitchen_prj)
QMUIStickySectionLayout mSectionLayout; QMUIStickySectionLayout mSectionLayout;
private OriginalKitchenPrjSectiontAdapter mKitchenPrjSectiontAdapter;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
...@@ -79,6 +80,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -79,6 +80,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initStickyLayout(); initStickyLayout();
initSectionData();
} }
@Override @Override
...@@ -88,38 +90,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -88,38 +90,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
private void initStickyLayout() { private void initStickyLayout() {
mSectionLayout.setLayoutManager(createLayoutManager()); mSectionLayout.setLayoutManager(createLayoutManager());
mAdapter = new TableManageSectiontAdapter(); mKitchenPrjSectiontAdapter = new OriginalKitchenPrjSectiontAdapter();
mAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, TableManagerItem>() { mKitchenPrjSectiontAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, OriginalKitchenPrjBean>() {
@Override @Override
public void loadMore(QMUISection<SectionHeader, TableManagerItem> section, boolean loadMoreBefore) { public void loadMore(QMUISection<SectionHeader, OriginalKitchenPrjBean> section, boolean loadMoreBefore) {
} }
@Override @Override
public void onItemClick(QMUIStickySectionAdapter.ViewHolder holder, int position) { public void onItemClick(QMUIStickySectionAdapter.ViewHolder holder, int position) {
if (holder instanceof TableManageSectiontAdapter.ViewHolder) {
TableManageSectiontAdapter.ViewHolder viewHolder = (TableManageSectiontAdapter.ViewHolder) holder;
if (viewHolder.getTvName().getText() != null) {
TableManagerItem item = viewHolder.getTableItem(position);
if (item.getLayoutType() == 1) {
start(AddTableFragment.newInstance(item));
} else {
if (isRadioEdit) {
item.setChecked(!item.isChecked());
mAdapter.notifyItemChanged(position);
} else {
if (item.getUseStatus() == 0 && item.getStatus() == 0) {
start(AddTableFragment.newInstance(item));
} else {
CommonTipDialog.showSurpisedDialog(mActivity, item.getTableName() + "檯正在使用中", null, null, null, null, null);
}
}
}
}
} else {
//點擊的頭部,折疊
}
} }
@Override @Override
...@@ -131,7 +111,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -131,7 +111,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
@Override @Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
if (view instanceof TextView) { if (view instanceof TextView) {
int margin = QMUIDisplayHelper.dp2px(getContext(), 10); int margin = QMUIDisplayHelper.dp2px(mContext, 10);
outRect.set(margin, margin, margin, margin); outRect.set(margin, margin, margin, margin);
} else { } else {
outRect.set(5, 5, 5, 5); outRect.set(5, 5, 5, 5);
...@@ -139,7 +119,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -139,7 +119,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
} }
}); });
RecyItemTouchHelperCallback itemTouchHelperCallback = new RecyItemTouchHelperCallback(mAdapter); RecyItemTouchHelperCallback itemTouchHelperCallback = new RecyItemTouchHelperCallback(mKitchenPrjSectiontAdapter);
final ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchHelperCallback); final ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchHelperCallback);
itemTouchHelper.attachToRecyclerView(mSectionLayout.getRecyclerView()); itemTouchHelper.attachToRecyclerView(mSectionLayout.getRecyclerView());
...@@ -158,7 +138,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -158,7 +138,7 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
// } // }
} }
}); });
mSectionLayout.setAdapter(mAdapter, true); mSectionLayout.setAdapter(mKitchenPrjSectiontAdapter, true);
} }
private RecyclerView.LayoutManager createLayoutManager() { private RecyclerView.LayoutManager createLayoutManager() {
...@@ -166,12 +146,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri ...@@ -166,12 +146,16 @@ public class OriginalPrintPaperActivity extends BaseFragmentActivity<OriginalPri
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override @Override
public int getSpanSize(int i) { public int getSpanSize(int i) {
return mAdapter.getItemIndex(i) < 0 ? layoutManager.getSpanCount() : 1; return mKitchenPrjSectiontAdapter.getItemIndex(i) < 0 ? layoutManager.getSpanCount() : 1;
} }
}); });
return layoutManager; return layoutManager;
} }
private void initSectionData() {
}
@Override @Override
public void initTopBar() { public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
......
...@@ -51,6 +51,11 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -51,6 +51,11 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
private SettlementReport mSettlementReportBean; private SettlementReport mSettlementReportBean;
private int mSettlementType;
public static final String SETTLEMENT_TYPE_TAG = "settlement_type";
public static final int SETTLEMENT_TYPE_NOMAL = 1;
public static final int SETTLEMENT_TYPE_HYWEB_POS = 2;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSettlementComponent //如找不到该类,请编译一下项目 DaggerSettlementComponent //如找不到该类,请编译一下项目
...@@ -69,12 +74,13 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -69,12 +74,13 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// tv_settlement_time.setVisibility(View.GONE); // tv_settlement_time.setVisibility(View.GONE);
mPresenter.getSettlementReport(); mPresenter.getSettlementReport(mSettlementType);
} }
@Override @Override
public void initIntent() { public void initIntent() {
Intent intent = getIntent();
mSettlementType = intent.getIntExtra(SETTLEMENT_TYPE_TAG, SETTLEMENT_TYPE_NOMAL);
} }
@Override @Override
...@@ -85,7 +91,6 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -85,7 +91,6 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override @Override
public void onClick(View v) { public void onClick(View v) {
killMyself(); killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
} }
}); });
mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機")).setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color)); mTopBar.setTitle(LanguageUtils.get_language_system(this, "funcSelect.settlement", "清機")).setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
...@@ -96,6 +101,7 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -96,6 +101,7 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
if (v.getId() == R.id.btn_settlement_report) { if (v.getId() == R.id.btn_settlement_report) {
Intent intent = new Intent(this, SettlementReportActivity.class); Intent intent = new Intent(this, SettlementReportActivity.class);
intent.putExtra("settlementReportBean", mSettlementReportBean); intent.putExtra("settlementReportBean", mSettlementReportBean);
intent.putExtra(SETTLEMENT_TYPE_TAG, mSettlementType);
launchActivity(intent); launchActivity(intent);
mSettlementReportBean = null; mSettlementReportBean = null;
} }
...@@ -137,9 +143,9 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem ...@@ -137,9 +143,9 @@ public class SettlementActivity extends BaseActivity<SettlementPresenter> implem
@Override @Override
public void returnSettlementData(SettlementReport datasBean) { public void returnSettlementData(SettlementReport datasBean) {
this.mSettlementReportBean = datasBean; this.mSettlementReportBean = datasBean;
if(mSettlementReportBean.getRestaurantOperation() != null) { if (mSettlementReportBean.getRestaurantOperation() != null) {
String lastSettlementText = LanguageUtils.get_language_system(this, "", "上次清機時間:"); String lastSettlementText = LanguageUtils.get_language_system(this, "", "上次清機時間:");
setLastTime(lastSettlementText + TimeUtils.getStringByFormat(mSettlementReportBean.getRestaurantOperation().getOperationTime(), TimeUtils.DEFAULT_DATE_FORMAT) ); setLastTime(lastSettlementText + TimeUtils.getStringByFormat(mSettlementReportBean.getRestaurantOperation().getOperationTime(), TimeUtils.DEFAULT_DATE_FORMAT));
} }
} }
......
...@@ -124,6 +124,8 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -124,6 +124,8 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
private int type; private int type;
private SettlementReport mSettlementReport; private SettlementReport mSettlementReport;
private SettlementReport mSettlementReportBean;
private int mSettlementType;
/** /**
* 1#全部計入到10號清機數據 * 1#全部計入到10號清機數據
* 2#全部計入到12號清機數據 * 2#全部計入到12號清機數據
...@@ -158,28 +160,28 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -158,28 +160,28 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// tv_last_time.setVisibility(View.GONE); // tv_last_time.setVisibility(View.GONE);
scrollView.post(() -> scrollView.fullScroll(ScrollView.FOCUS_UP)); scrollView.post(() -> scrollView.fullScroll(ScrollView.FOCUS_UP));
}
@Override
public void initIntent() {
Intent intent = getIntent();
SettlementReport settlementReportBean = intent.getParcelableExtra("settlementReportBean");
df = new DecimalFormat(dfformat); df = new DecimalFormat(dfformat);
if (settlementReportBean != null) { if (mSettlementReportBean != null) {
mPresenter.initAdapter(); mPresenter.initAdapter();
returnSettlementData(settlementReportBean); returnSettlementData(mSettlementReportBean);
} else { } else {
mPresenter.initAdapter(); mPresenter.initAdapter();
mPresenter.getSettlementReport(); mPresenter.getSettlementReport(mSettlementType);
} }
} }
@Override @Override
public void initIntent() {
Intent intent = getIntent();
mSettlementType = intent.getIntExtra(SettlementActivity.SETTLEMENT_TYPE_TAG, SettlementActivity.SETTLEMENT_TYPE_NOMAL);
mSettlementReportBean = intent.getParcelableExtra("settlementReportBean");
}
@Override
public void initTopBar() { public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(v -> { mTopBar.addLeftBackImageButton().setOnClickListener(v -> {
killMyself(); killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}); });
rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right); rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right);
rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color)); rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
......
...@@ -10,9 +10,9 @@ import android.widget.RelativeLayout; ...@@ -10,9 +10,9 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.gingersoft.gsa.cloud.common.core.table.TableManagerItem;
import com.gingersoft.gsa.cloud.common.utils.StringUtils; import com.gingersoft.gsa.cloud.common.utils.StringUtils;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.OriginalKitchenPrjBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView; import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView;
import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView; import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView;
...@@ -36,7 +36,7 @@ import butterknife.ButterKnife; ...@@ -36,7 +36,7 @@ import butterknife.ButterKnife;
* 修订历史:2020-02-09 * 修订历史:2020-02-09
* 描述: * 描述:
*/ */
public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, TableManagerItem> { public class OriginalKitchenPrjSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, OriginalKitchenPrjBean> {
private Context context; private Context context;
...@@ -51,7 +51,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA ...@@ -51,7 +51,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA
@Override @Override
protected ViewHolder onCreateSectionItemViewHolder(@NonNull ViewGroup viewGroup) { protected ViewHolder onCreateSectionItemViewHolder(@NonNull ViewGroup viewGroup) {
this.context = viewGroup.getContext(); this.context = viewGroup.getContext();
return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.manager_item_manage_table, null)); return new ViewHolder(View.inflate(viewGroup.getContext(), R.layout.main_item_original_kitchen, null));
} }
@NonNull @NonNull
...@@ -61,7 +61,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA ...@@ -61,7 +61,7 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA
} }
@Override @Override
protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, TableManagerItem> section) { protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, OriginalKitchenPrjBean> section) {
super.onBindSectionHeader(holder, position, section); super.onBindSectionHeader(holder, position, section);
QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView; QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView;
itemView.render(section.getHeader(), section.isFold()); itemView.render(section.getHeader(), section.isFold());
...@@ -75,63 +75,20 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA ...@@ -75,63 +75,20 @@ public class OriginalKitcherPrjSectiontAdapter extends QMUIDefaultStickySectionA
} }
@Override @Override
protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, TableManagerItem> section, int itemIndex) { protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, OriginalKitchenPrjBean> section, int itemIndex) {
super.onBindSectionItem(holder, position, section, itemIndex); super.onBindSectionItem(holder, position, section, itemIndex);
ViewHolder viewHolder = (ViewHolder) holder; ViewHolder viewHolder = (ViewHolder) holder;
TableManagerItem tableItem = section.getItemAt(itemIndex);
} }
public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder { public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder {
@BindView(R2.id.ll_container)
QMUIRelativeLayout ll_container;
@BindView(R2.id.rl_table)
RelativeLayout rl_table;
@BindView(R2.id.tv_table)
TextView tv_table;
@BindView(R2.id.tv_people)
TextView tv_people;
// @BindView(R2.id.btn_showMain)
// Button btn_showMain;
// @BindView(R2.id.iv_vip)
// ImageView iv_vip;
// @BindView(R2.id.tv_scan_flag)
// TextView tv_scan_flag;
@BindView(R2.id.tv_service_fee)
TextView tv_service_fee;
@BindView(R2.id.cb_checked)
CheckBox cb_checked;
@BindView(R2.id.fl_add_table)
FrameLayout fl_add_table;
@BindView(R2.id.fl_table_type)
FrameLayout fl_table_type;
@BindView(R2.id.tlv_table_type)
TriangleLabelView tlv_table_type;
@BindView(R2.id.tv_type_labe)
TextView tv_type_labe;
public ViewHolder(View itemView) { public ViewHolder(View itemView) {
super(itemView); super(itemView);
ButterKnife.bind(this, itemView); ButterKnife.bind(this, itemView);
} }
public TextView getTvName() {
return tv_table;
}
public TextView getTvServiceFee() {
return tv_service_fee;
}
public TableManagerItem getTableItem(int position) {
TableManagerItem item = getSectionItem(position);
return item;
}
} }
} }
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/iv_kitchen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scaleType="fitXY">
</ImageView>
...@@ -238,7 +238,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A ...@@ -238,7 +238,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A
int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId(); int restaurantId = RestaurantInfoManager.newInstance().getRestaurantId();
AreaRequest.Add areaRequest = new AreaRequest.Add(); AreaRequest.Add areaRequest = new AreaRequest.Add();
areaRequest.setRestaurantId(restaurantId); areaRequest.setRestaurantId(restaurantId);
areaRequest.setRegionName(ed_area_name.getText().toString()); areaRequest.setRegionName(ed_area_name.getText().toString().trim());
areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString())); areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString()));
return areaRequest; return areaRequest;
} }
...@@ -246,7 +246,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A ...@@ -246,7 +246,7 @@ public class AddAreaFragment extends BaseFragment<AddAreaPresenter> implements A
public AreaRequest.Update createUpateAreaRequest(int id) { public AreaRequest.Update createUpateAreaRequest(int id) {
AreaRequest.Update areaRequest = new AreaRequest.Update(); AreaRequest.Update areaRequest = new AreaRequest.Update();
areaRequest.setId(id); areaRequest.setId(id);
areaRequest.setRegionName(ed_area_name.getText().toString()); areaRequest.setRegionName(ed_area_name.getText().toString().trim());
areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString())); areaRequest.setSort(Integer.parseInt(ed_area_sort.getText().toString()));
return areaRequest; return areaRequest;
} }
......
...@@ -432,7 +432,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements ...@@ -432,7 +432,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
TableRequest.Add addTableRequest = new TableRequest.Add(); TableRequest.Add addTableRequest = new TableRequest.Add();
addTableRequest.setRegionId(currentAreaId); addTableRequest.setRegionId(currentAreaId);
addTableRequest.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId()); addTableRequest.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId());
addTableRequest.setTableName(tableNameEditText.getText().toString()); addTableRequest.setTableName(tableNameEditText.getText().toString().trim());
if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) { if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) {
addTableRequest.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString())); addTableRequest.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString()));
} }
...@@ -454,7 +454,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements ...@@ -454,7 +454,7 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
update.setId(id); update.setId(id);
update.setRegionId(currentAreaId); update.setRegionId(currentAreaId);
update.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId()); update.setRestaurantId(RestaurantInfoManager.newInstance().getRestaurantId());
update.setTableName(tableNameEditText.getText().toString()); update.setTableName(tableNameEditText.getText().toString().trim());
if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) { if (!TextUtils.isEmpty(serverchargeEditText.getText().toString())) {
update.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString())); update.setServiceCharge(Double.parseDouble(serverchargeEditText.getText().toString()));
} }
......
...@@ -122,12 +122,6 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements ...@@ -122,12 +122,6 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
.inject(this); .inject(this);
} }
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override @Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_area_list, container, false); return inflater.inflate(R.layout.fragment_area_list, container, false);
......
...@@ -208,7 +208,7 @@ public class PrintBill extends PrinterRoot<PrintBillContent> { ...@@ -208,7 +208,7 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
//食品信息 //食品信息
layout.addView(getDiningFoodList(mContext, mPrintBillContent.getFoodItemList(), deviceBean, 1, true)); layout.addView(getDiningFoodList(mContext, mPrintBillContent.getFoodItemList(), deviceBean, 1, true));
layout.addView(getHalfLine(mContext)); layout.addView(getHalfLine(mContext));
//訂單金額信息 //訂單金額信息
......
...@@ -9,6 +9,7 @@ import android.widget.TextView; ...@@ -9,6 +9,7 @@ import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans;
import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils; import com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
...@@ -146,7 +147,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -146,7 +147,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintFirstOrder, false)) {
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean), htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, getTableName(prjBean),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_first_order), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_first_order),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string))); new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string)));
} }
//統計打印數 //統計打印數
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintStatisticsAmount, false)) {
...@@ -221,7 +222,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -221,7 +222,7 @@ public class PrintPrjKitchen extends PrinterRoot {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) {
htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj(), htmlLables.add(new HtmlLable(HtmlContract.LABLE_P, prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj(),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_prj_page_index), new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_FONT_SIZE, font_size_prj_page_index),
new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center,HtmlContract.value_type_string))); new HtmlLable.Attributes(HtmlContract.ATTRIBUTES_ALIGN, HtmlContract.value_align_center, HtmlContract.value_type_string)));
} }
return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()])); return getHtmlLables(htmlLables.toArray(new HtmlLable[htmlLables.size()]));
} }
...@@ -252,7 +253,7 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -252,7 +253,7 @@ public class PrintPrjKitchen extends PrinterRoot {
return null; return null;
} }
setFoodItemType(data); setFoodItemType(data);
View view = LinearLayout.inflate(context, R.layout.print_kitchen, null); View view = LinearLayout.inflate(context, R.layout.print_kitchen2, null);
TextView tvTableNumber = view.findViewById(R.id.tv_kitchen_print_table_number); TextView tvTableNumber = view.findViewById(R.id.tv_kitchen_print_table_number);
TextView tvOrderNumberText = view.findViewById(R.id.tv_order_num_text); TextView tvOrderNumberText = view.findViewById(R.id.tv_order_num_text);
TextView tvOrderNumber = view.findViewById(R.id.tv_order_num); TextView tvOrderNumber = view.findViewById(R.id.tv_order_num);
...@@ -261,17 +262,22 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -261,17 +262,22 @@ public class PrintPrjKitchen extends PrinterRoot {
TextView tvTakeTime = view.findViewById(R.id.tv_food_time); TextView tvTakeTime = view.findViewById(R.id.tv_food_time);
TextView tvOpeningTime = view.findViewById(R.id.tv_opening_time); TextView tvOpeningTime = view.findViewById(R.id.tv_opening_time);
TextView tvOrderTime = view.findViewById(R.id.tv_order_time); TextView tvOrderTime = view.findViewById(R.id.tv_order_time);
TextView tvKitChenLocationText = view.findViewById(R.id.tv_kitchen_location_text);
TextView tvKitChenLocation = view.findViewById(R.id.tv_kitchen_location); TextView tvKitChenLocation = view.findViewById(R.id.tv_kitchen_location);
TextView tvPeople = view.findViewById(R.id.tv_people); TextView tvPeople = view.findViewById(R.id.tv_people);
TextView tvOperator = view.findViewById(R.id.tv_operator);
TextView tvCurrentPageIndex = view.findViewById(R.id.tv_prj_page_index); TextView tvCurrentPageIndex = view.findViewById(R.id.tv_prj_page_index);
// RecyclerView rvFood = view.findViewById(R.id.rv_kitchen_food); // RecyclerView rvFood = view.findViewById(R.id.rv_kitchen_food);
LinearLayout foodLayout = view.findViewById(R.id.layout_kitchen_food); LinearLayout foodLayout = view.findViewById(R.id.ll_kitchen_food);
TextView tvTableNumber2 = view.findViewById(R.id.tv_kitchen_print_table_number2); TextView tvTableNumber2 = view.findViewById(R.id.tv_kitchen_print_table_number_bottom);
TextView tvFirstOrder = view.findViewById(R.id.tv_kitchen_print_first_order); TextView tvFirstOrder = view.findViewById(R.id.tv_kitchen_print_first_order);
TextView tvPrintQuantity = view.findViewById(R.id.tv_kitchen_print_quantity); TextView tvPrintQuantity = view.findViewById(R.id.tv_kitchen_print_quantity);
LinearLayout layoutOpenTableTime = view.findViewById(R.id.layout_opening_table_time); TextView tvOrderReserved = view.findViewById(R.id.tv_order_reserved);
LinearLayout llWaiter = view.findViewById(R.id.ll_waiter);
TextView tvWaiterText = view.findViewById(R.id.tv_waiter_text);
TextView tvWaiter = view.findViewById(R.id.tv_waiter);
LinearLayout layoutOpenTableTime = view.findViewById(R.id.ll_opening_table_time);
foodLayout.addView(new KitChenPrjFoodView(context, data, printerDeviceBean)); foodLayout.addView(new KitChenPrjFoodView(context, data, printerDeviceBean));
// KitChenPrjPrintFoodAdapter foodAdapter = new KitChenPrjPrintFoodAdapter(data, printerDeviceBean); // KitChenPrjPrintFoodAdapter foodAdapter = new KitChenPrjPrintFoodAdapter(data, printerDeviceBean);
...@@ -279,11 +285,12 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -279,11 +285,12 @@ public class PrintPrjKitchen extends PrinterRoot {
// rvFood.setAdapter(foodAdapter); // rvFood.setAdapter(foodAdapter);
//廚房位置 //廚房位置
if (!TextUtil.isEmptyOrNullOrUndefined(key) && !key.equals("-1")) { if (!TextUtil.isEmptyOrNullOrUndefined(key) && !key.equals("-1")) {
tvKitChenLocation.setText(key + "廚房");//.replace("*", "") tvKitChenLocationText.setVisibility(View.VISIBLE);
tvKitChenLocation.setVisibility(View.VISIBLE); tvKitChenLocation.setText(key);
} else { } else {
tvKitChenLocation.setVisibility(View.GONE); tvKitChenLocationText.setVisibility(View.GONE);
} }
if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getBillNo())) { if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getBillNo())) {
//訂單碼不為空 //訂單碼不為空
tvOrderNumberText.setText("訂單碼:"); tvOrderNumberText.setText("訂單碼:");
...@@ -292,39 +299,72 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -292,39 +299,72 @@ public class PrintPrjKitchen extends PrinterRoot {
//訂單號 //訂單號
tvOrderNumber.setText(prjBean.getOrderNo()); tvOrderNumber.setText(prjBean.getOrderNo());
} }
if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) { switch (prjBean.getOrderType()) {
layoutOpenTableTime.setVisibility(View.GONE); case OrderTypeConstans.order_type_1:
switch (prjBean.getOrderType()) { case OrderTypeConstans.order_type_3:
case 1: tvTableNumber.setText("堂食");
case 3: tvTableNumber2.setText("堂食");
tvTableNumber.setText("堂食"); tvTableNumber.setText(prjBean.getTableName());
tvTableNumber2.setText("堂食"); tvTableNumber2.setText(prjBean.getTableName());
if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) { // if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
tvTakeCodeText.setVisibility(View.VISIBLE); // tvTakeCodeText.setVisibility(View.VISIBLE);
tvTakeCode.setVisibility(View.VISIBLE); // tvTakeCode.setVisibility(View.VISIBLE);
tvTakeCode.setText(prjBean.getTakeFoodCode()); // tvTakeCode.setText(prjBean.getTakeFoodCode());
} // }
break; break;
case 7: case OrderTypeConstans.order_type_7:
tvTableNumber.setText("自取"); layoutOpenTableTime.setVisibility(View.GONE);
tvTableNumber2.setText("自取"); tvTableNumber.setText("自取");
if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) { tvTableNumber2.setText("自取");
tvTakeCodeText.setVisibility(View.VISIBLE); if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
tvTakeCode.setVisibility(View.VISIBLE); tvTakeCodeText.setVisibility(View.VISIBLE);
tvTakeCode.setText(prjBean.getTakeFoodCode()); tvTakeCode.setVisibility(View.VISIBLE);
} tvTakeCode.setText(prjBean.getTakeFoodCode());
break; }
default: break;
tvTableNumber.setText("外賣"); default:
tvTableNumber2.setText("外賣"); layoutOpenTableTime.setVisibility(View.GONE);
tvOrderNumberText.setText("訂單碼:"); tvTableNumber.setText("外賣");
tvOrderNumber.setText(prjBean.getTakeFoodCode()); tvTableNumber2.setText("外賣");
break; tvOrderNumberText.setText("訂單碼:");
} tvOrderNumber.setText(prjBean.getTakeFoodCode());
} else { break;
tvTableNumber.setText(prjBean.getTableName());
tvTableNumber2.setText(prjBean.getTableName());
} }
//操作人員名稱
tvWaiter.setText(prjBean.getUserName());
// if (TextUtil.isEmptyOrNullOrUndefined(prjBean.getTableName())) {
// layoutOpenTableTime.setVisibility(View.GONE);
// switch (prjBean.getOrderType()) {
// case 1:
// case 3:
// tvTableNumber.setText("堂食");
// tvTableNumber2.setText("堂食");
// if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
// tvTakeCodeText.setVisibility(View.VISIBLE);
// tvTakeCode.setVisibility(View.VISIBLE);
// tvTakeCode.setText(prjBean.getTakeFoodCode());
// }
// break;
// case 7:
// tvTableNumber.setText("自取");
// tvTableNumber2.setText("自取");
// if (!TextUtil.isEmptyOrNullOrUndefined(prjBean.getTakeFoodCode())) {
// tvTakeCodeText.setVisibility(View.VISIBLE);
// tvTakeCode.setVisibility(View.VISIBLE);
// tvTakeCode.setText(prjBean.getTakeFoodCode());
// }
// break;
// default:
// tvTableNumber.setText("外賣");
// tvTableNumber2.setText("外賣");
// tvOrderNumberText.setText("訂單碼:");
// tvOrderNumber.setText(prjBean.getTakeFoodCode());
// break;
// }
// } else {
// tvTableNumber.setText(prjBean.getTableName());
// tvTableNumber2.setText(prjBean.getTableName());
// }
//人數 //人數
if (prjBean.getPerson() != 0) { if (prjBean.getPerson() != 0) {
tvPeople.setText(prjBean.getPerson() + ""); tvPeople.setText(prjBean.getPerson() + "");
...@@ -366,8 +406,6 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -366,8 +406,6 @@ public class PrintPrjKitchen extends PrinterRoot {
// } // }
//落單時間,為當前時間 //落單時間,為當前時間
tvOrderTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_MDHM)); tvOrderTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_MDHM));
//操作人員
tvOperator.setText(prjBean.getUserName());
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) { if (RestaurantExpandInfoUtils.getValue(ExpandConstant.PrintPage, false)) {
if (prjBean.getCurrentIndex() <= prjBean.getTotalPrj()) { if (prjBean.getCurrentIndex() <= prjBean.getTotalPrj()) {
tvCurrentPageIndex.setText(prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj()); tvCurrentPageIndex.setText(prjBean.getCurrentIndex() + "/" + prjBean.getTotalPrj());
...@@ -377,6 +415,19 @@ public class PrintPrjKitchen extends PrinterRoot { ...@@ -377,6 +415,19 @@ public class PrintPrjKitchen extends PrinterRoot {
return viewToZoomBitmap(context, view, printerDeviceBean); return viewToZoomBitmap(context, view, printerDeviceBean);
} }
private String getOrderNumTextByOrdeType(int orderType) {
switch (orderType) {
case 1:
case 3:
return "單號";//堂食
case 7:
return "訂單碼";//自取
default:
return "訂單碼";//外送
}
}
private void setFoodItemType(List<PrjBean.DataBean.Bean> data) { private void setFoodItemType(List<PrjBean.DataBean.Bean> data) {
for (PrjBean.DataBean.Bean bean : data) { for (PrjBean.DataBean.Bean bean : data) {
if (bean.getParentId() == 0) { if (bean.getParentId() == 0) {
......
package com.joe.print.mvp.print.service; package com.joe.print.mvp.print.service;
import android.app.IntentService;
import android.app.Service; import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
...@@ -43,6 +44,7 @@ import com.gingersoft.gsa.cloud.print.bean.UpdateBean; ...@@ -43,6 +44,7 @@ import com.gingersoft.gsa.cloud.print.bean.UpdateBean;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback; import com.hyweb.n5.server.aidl.IOnPrintCallback;
import com.jess.arms.utils.RxLifecycleUtils;
import com.joe.print.mvp.print.PrintPrjKitchen; import com.joe.print.mvp.print.PrintPrjKitchen;
import com.joe.print.mvp.print.PrinterRoot; import com.joe.print.mvp.print.PrinterRoot;
import com.joe.print.mvp.print.common.PrinterFinderCallback; import com.joe.print.mvp.print.common.PrinterFinderCallback;
...@@ -76,6 +78,7 @@ import io.reactivex.Observable; ...@@ -76,6 +78,7 @@ import io.reactivex.Observable;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import jcifs.smb.SmbFile; import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream; import jcifs.smb.SmbFileOutputStream;
...@@ -104,6 +107,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -104,6 +107,7 @@ public class PrjService extends Service implements ReceiveListener {
private Context mContext; private Context mContext;
private String TAG = "Prj"; private String TAG = "Prj";
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
...@@ -115,6 +119,7 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -115,6 +119,7 @@ public class PrjService extends Service implements ReceiveListener {
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
mContext = this; mContext = this;
ThreadPoolManager.getInstence().putExecutableTasks(() -> { ThreadPoolManager.getInstence().putExecutableTasks(() -> {
LoganManager.w_printer(TAG, "currentThreadName: "+Thread.currentThread().getName());
LoganManager.w_printer(TAG, "開始請求 PRJ 數據"); LoganManager.w_printer(TAG, "開始請求 PRJ 數據");
getPrintList(); getPrintList();
//開始請求 //開始請求
...@@ -209,15 +214,16 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -209,15 +214,16 @@ public class PrjService extends Service implements ReceiveListener {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
LoganManager.w_printer(TAG, "RxCurrentThreadName: "+Thread.currentThread().getName());
LoganManager.w_printer(TAG, "getPrjInfo onSubscribe"); LoganManager.w_printer(TAG, "getPrjInfo onSubscribe");
} }
@Override @Override
public void onNext(String s) { public void onNext(String prjInfo) {
LoganManager.w_printer(TAG, "getPrjInfo onNext: " + s); LoganManager.w_printer(TAG, "getPrjInfo onNext: " + prjInfo);
//請求到數據,停止輪詢,開始打印,在打印完之後再重新開始輪詢 //請求到數據,停止輪詢,開始打印,在打印完之後再重新開始輪詢
// startPrint(s); // startPrint(s);
newPrint(s); newPrint(prjInfo);
//開啟另一個定時,三十秒之後自動請求,避免上面的打印成功或失敗時沒有回調。 //開啟另一個定時,三十秒之後自動請求,避免上面的打印成功或失敗時沒有回調。
cancel(wakeDisposable); cancel(wakeDisposable);
Observable.timer(30, TimeUnit.SECONDS) Observable.timer(30, TimeUnit.SECONDS)
...@@ -523,7 +529,11 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -523,7 +529,11 @@ public class PrjService extends Service implements ReceiveListener {
LoganManager.w_printer(TAG, "generatePrintData PrinterDeviceBean deviceType: " + printerDeviceBean.getPrinterDeviceType() LoganManager.w_printer(TAG, "generatePrintData PrinterDeviceBean deviceType: " + printerDeviceBean.getPrinterDeviceType()
+ " ip: " + printerDeviceBean.getIp()); + " ip: " + printerDeviceBean.getIp());
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(GsonUtils.GsonString(beans), GsonUtils.GsonString(printerDeviceBean)); int orderType = 1;
if (beans.size() > 0) {
orderType = beans.get(0).getOrderType();
}
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterDataBefore(orderType,GsonUtils.GsonString(beans), GsonUtils.GsonString(printerDeviceBean));
if (isPinPrinter(printerDeviceBean) && printerDeviceBean.getPrinterDeviceType() == PRINT_IP) { if (isPinPrinter(printerDeviceBean) && printerDeviceBean.getPrinterDeviceType() == PRINT_IP) {
//針式打印機並且打印機類型為IP打印,生成獨特的格式 //針式打印機並且打印機類型為IP打印,生成獨特的格式
...@@ -922,10 +932,12 @@ public class PrjService extends Service implements ReceiveListener { ...@@ -922,10 +932,12 @@ public class PrjService extends Service implements ReceiveListener {
if (bitmapMaps.size() > 0) { if (bitmapMaps.size() > 0) {
String prjName = null; String prjName = null;
int orderType = 1;
if (beans.size() > 0) { if (beans.size() > 0) {
prjName = beans.get(0).getBillNo(); prjName = beans.get(0).getBillNo().isEmpty() ? beans.get(0).getOrderNo() : beans.get(0).getBillNo();
orderType = beans.get(0).getOrderType();
} }
PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(prjName, bitmapMaps); PrintPaperPlugins.getOnPrinterFlowHandler().onPrinterBitmapBefore(orderType,prjName, bitmapMaps);
} }
return bitmapMaps; return bitmapMaps;
......
...@@ -4,6 +4,7 @@ import android.text.TextUtils; ...@@ -4,6 +4,7 @@ import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.patterns.Strategy; import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam; import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener; import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; import com.gingersoft.gsa.cloud.pay.pos.PosAction;
...@@ -56,7 +57,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -56,7 +57,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
dialogBuilder.setMessage("是否取消訂單?"); dialogBuilder.setMessage("是否取消訂單?");
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> { dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss(); dialog.dismiss();
if (datasBean.withHywebPay()) { if (datasBean.withHywebPay() && AppDevices.isHywebPos()) {
hywebOrderCancle(datasBean); hywebOrderCancle(datasBean);
} else { } else {
if (cancelListener != null) { if (cancelListener != null) {
......
...@@ -228,7 +228,6 @@ public class OrderManagerResponse implements Serializable { ...@@ -228,7 +228,6 @@ public class OrderManagerResponse implements Serializable {
} }
} }
public boolean withHywebPay() { public boolean withHywebPay() {
if (!TextUtils.isEmpty(payTxnId) || !TextUtils.isEmpty(cancelTxnId) || !TextUtils.isEmpty(refundTxnId)) { if (!TextUtils.isEmpty(payTxnId) || !TextUtils.isEmpty(cancelTxnId) || !TextUtils.isEmpty(refundTxnId)) {
return true; return true;
......
...@@ -259,9 +259,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -259,9 +259,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* 1、更新食品折扣 * 1、更新食品折扣
* 2、更新合計 * 2、更新合計
* 3、更新食品折扣 * 3、更新食品折扣
* 4、更新服務費項 * 4、更新服務費項{@link ServiceChargeItem}
* 5、更新賬單折扣項{@link NomalDiscount} * 5、更新賬單折扣項{@link NomalDiscount}
* 6、更新賬單小數項 * 6、更新賬單小數項{@link RoundingItem}
* 7、總金額 * 7、總金額
*/ */
public void updateBillInfo(UpdateBillInfoEndListener updateBillInfoEndListener) { public void updateBillInfo(UpdateBillInfoEndListener updateBillInfoEndListener) {
...@@ -436,7 +436,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -436,7 +436,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @param cla * @param cla
* @return * @return
*/ */
private BillItem findBillItemByClass(Class<?> cla) { public BillItem findBillItemByClass(Class<?> cla) {
BillItem billItem = null; BillItem billItem = null;
for (BillItem item : mBillItemList) { for (BillItem item : mBillItemList) {
if (item.getClass().equals(cla)) { if (item.getClass().equals(cla)) {
...@@ -1134,7 +1134,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex ...@@ -1134,7 +1134,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
orderItem.setDiscountList(discountList); orderItem.setDiscountList(discountList);
} }
} }
orderItem.setLunchboxPrice(0); // orderItem.setLunchboxPrice(0);
orderItem.setPointsAdd(item.getPointsAdd()); orderItem.setPointsAdd(item.getPointsAdd());
orderItem.setPointsRedeem(item.getPointsRedeem()); orderItem.setPointsRedeem(item.getPointsRedeem());
......
...@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
this.mAppManager = null; this.mAppManager = null;
this.mImageLoader = null; this.mImageLoader = null;
this.mApplication = null; this.mApplication = null;
if(mNomalDiscountAction != null){ if (mNomalDiscountAction != null) {
mNomalDiscountAction.destroy(); mNomalDiscountAction.destroy();
} }
stopTablePolling(); stopTablePolling();
...@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onItemDeleteClick(BillItem datasBean, int position) { public void onItemDeleteClick(BillItem datasBean, int position) {
removeBillItem(position); removeBillItemByPosition(position);
} }
}); });
} }
...@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo); PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
...@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(),mTableInfo); PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單 .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
...@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private void updateOrderDetails(BaseOrderResponse info) { private void updateOrderDetails(BaseOrderResponse info) {
if (mDoshokuOrder != null && info.getData() != null) { if (mDoshokuOrder != null && info.getData() != null) {
if (info.getData().getOrderDetails() != null) { mTableInfo.setPerson(info.getData().getPerson());
mTableInfo.setCreateTime(info.getData().getCreateTime());
mDoshokuOrder.setOpenTableInfo(mTableInfo);
mDoshokuOrder.setOrderPlaced(info.getData());
mTableInfo.setPerson(info.getData().getPerson()); if (info.getData().getOrderDetails() != null) {
//緩存訂單信息 //组装食品信息
mDoshokuOrder.setOrderPlaced(new OrderResponse(info.getData()));
//緩存食品信息
// List<OrderDetail> orderDetailList = OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails());
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails())); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails()));
mDoshokuOrder.setNewFoodList(orderDetailList);
mOrderMealList.clear(); mOrderMealList.clear();
mOrderMealList.addAll(orderDetailList); mOrderMealList.addAll(orderDetailList);
mSelectMealAdapter.notifyDataSetChanged(); mSelectMealAdapter.notifyDataSetChanged();
...@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return true; return true;
} }
public void removeBillItemByPosition(int index) {
public void removeBillItem(int index) {
if (index < mBillItemList.size()) { if (index < mBillItemList.size()) {
BillItem billItem = mBillItemList.get(index); BillItem billItem = mBillItemList.get(index);
if (billItem instanceof DiscountItem) { if (billItem instanceof DiscountItem) {
...@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
/** /**
* 修改訂單包含修改或刪除過的的食品 * 修改訂單包含修改或刪除過的的食品
*
* @return * @return
*/ */
private boolean hasModifyFoods() { private boolean hasModifyFoods() {
for (OrderDetail orderDetail : getOrderFoodLists()) { for (OrderDetail orderDetail : getOrderFoodLists()) {
if(orderDetail.isModify()){ if (orderDetail.isModify()) {
return true; return true;
} }
} }
......
...@@ -57,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -57,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public OrderDetailPresenter(OrderDetailContract.Model model, OrderDetailContract.View rootView) { public OrderDetailPresenter(OrderDetailContract.Model model, OrderDetailContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -88,8 +89,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -88,8 +89,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
if (result.getData() != null) { if (result.getData() != null) {
OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class); OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class);
mRootView.returnOrderDetail(orderDetailItem); mRootView.returnOrderDetail(orderDetailItem);
//刷新訂單列表 } else {
EventBus.getDefault().post(true, PosActionStatusExceptionFragment.REFREAFSH_ORDER_EVENT); } else {
mRootView.showMessage("獲取賬單失敗"); mRootView.showMessage("獲取賬單失敗");
} }
} else { } else {
......
...@@ -49,8 +49,10 @@ import com.gingersoft.gsa.cloud.component.ComponentName; ...@@ -49,8 +49,10 @@ import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse; import com.gingersoft.gsa.cloud.order.bean.response.OrderResponse;
import com.gingersoft.gsa.cloud.order.billItem.BillItem; import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.order.cart.ShoppingCart; import com.gingersoft.gsa.cloud.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.order.discount.MultyDiscount; import com.gingersoft.gsa.cloud.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.order.order.BaseOrder; import com.gingersoft.gsa.cloud.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
...@@ -440,8 +442,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -440,8 +442,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
} else { } else {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_unfocused); ivPoints[i].setImageResource(R.drawable.meal_food_group_point_unfocused);
} }
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ArmsUtils.dip2px(this,20),ArmsUtils.dip2px(this,12)); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(ArmsUtils.dip2px(this, 20), ArmsUtils.dip2px(this, 12));
lp.leftMargin = ArmsUtils.dip2px(this,5); lp.leftMargin = ArmsUtils.dip2px(this, 5);
ivPoints[i].setLayoutParams(lp); ivPoints[i].setLayoutParams(lp);
ivPoints[i].setPadding(0, 0, 0, 0); ivPoints[i].setPadding(0, 0, 0, 0);
ll_food_group_point.addView(ivPoints[i]); ll_food_group_point.addView(ivPoints[i]);
...@@ -648,8 +650,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -648,8 +650,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void clearMemberInfo() { public void clearMemberInfo() {
btn_table.setBackgroundColor(Color.parseColor("#336699")); btn_table.setBackgroundColor(Color.parseColor("#336699"));
DoshokuOrder.getInstance().setMemberInfo(null); DoshokuOrder.getInstance().setMemberInfo(null);
//更新賬單信息
mPresenter.updateBillInfo(); DiscountItem memberDiscountBillItem = (DiscountItem) mPresenter.findBillItemByClass(MemberDiscount.class);
if(memberDiscountBillItem != null){
ShoppingCart shoppingCart = mPresenter.getShoppingCart();
shoppingCart.delMultyDiscount(memberDiscountBillItem.getDiscount());
//更新賬單信息
mPresenter.updateBillInfo();
}
if (DoshokuOrder.getInstance().needUpdateMemberInfo()) { if (DoshokuOrder.getInstance().needUpdateMemberInfo()) {
return; return;
} }
......
...@@ -344,7 +344,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -344,7 +344,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
if (mOrderDetailItem.getRestaurantOperationId() != null) { if (mOrderDetailItem.getRestaurantOperationId() != null) {
setWithSettlementLayoutVisible(); setWithSettlementLayoutVisible();
} else { } else {
if (mOrderDetailItem.withHywebPay()) { if (mOrderDetailItem.withHywebPay() && AppDevices.isHywebPos()) {
if (mOrderDetailItem.isCurrDeviceOrder()) { if (mOrderDetailItem.isCurrDeviceOrder()) {
setCurrPosDeviceLayoutVisible(); setCurrPosDeviceLayoutVisible();
} else { } else {
......
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000072b111fa, pid=13012, tid=0x0000000000003d58
#
# JRE version: OpenJDK Runtime Environment (8.0_242-b01) (build 1.8.0_242-release-1644-b01)
# Java VM: OpenJDK 64-Bit Server VM (25.242-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V [jvm.dll+0x4e11fa]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#
#
--------------- T H R E A D ---------------
Current thread (0x0000000016768000): JavaThread "C2 CompilerThread2" daemon [_thread_in_native, id=15704, stack(0x0000000018f30000,0x0000000019030000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x00000003b35c02e0
Registers:
RAX=0x000000001dc12e60, RBX=0x000000001d59b278, RCX=0x0000000072b35a90, RDX=0x000000001dc12e60
RSP=0x000000001902bb70, RBP=0x000000001902bbe8, RSI=0x0000000072c71188, RDI=0x0000000000060002
R8 =0x00000000000000cf, R9 =0x000000001902bbb0, R10=0x000000000000000b, R11=0x0000000072c6feb8
R12=0x00000000219618c8, R13=0x000000000000007d, R14=0x000000001ffbb050, R15=0x000000001902d240
RIP=0x0000000072b111fa, EFLAGS=0x0000000000010297
Top of Stack: (sp=0x000000001902bb70)
0x000000001902bb70: 0000000024b994a8 0000000000000000
0x000000001902bb80: 000000001902bbe8 00000000000000c9
0x000000001902bb90: 000000001856bff0 0000000000000400
0x000000001902bba0: 000000001e1f35a0 0000000000000014
0x000000001902bbb0: 0000000072c6f9e8 000000001856bff0
0x000000001902bbc0: 0000000000000080 000000001e1f33a0
0x000000001902bbd0: 0000000000000003 0000000072af82a0
0x000000001902bbe0: 0000000072be02f8 000000001e8616e8
0x000000001902bbf0: 000000001902e920 000000001e85e540
0x000000001902bc00: 000000001856bff0 000000001902d240
0x000000001902bc10: 000000001902bd50 0000000072b12070
0x000000001902bc20: 0000000025272f88 0000000025272f30
0x000000001902bc30: 0000000025272f90 000000001e859700
0x000000001902bc40: 0000000000000028 0000000072a76e13
0x000000001902bc50: 0000000000000028 000000001856bff0
0x000000001902bc60: 000000001856bf00 000000001902e900
Instructions: (pc=0x0000000072b111fa)
0x0000000072b111da: 4c 8d 24 c7 49 3b fc 0f 83 94 00 00 00 66 0f 1f
0x0000000072b111ea: 84 00 00 00 00 00 48 8b 37 49 8b 47 50 8b 4e 28
0x0000000072b111fa: 48 8b 1c c8 48 8b 06 48 8b ce ff 50 28 48 3b c3
0x0000000072b1120a: 74 62 8b 4e 28 8b c1 c1 e8 05 3b 45 d8 72 0f 48
Register to memory mapping:
RAX=0x000000001dc12e60 is an unknown value
RBX=0x000000001d59b278 is an unknown value
RCX=0x0000000072b35a90 is an unknown value
RDX=0x000000001dc12e60 is an unknown value
RSP=0x000000001902bb70 is pointing into the stack for thread: 0x0000000016768000
RBP=0x000000001902bbe8 is pointing into the stack for thread: 0x0000000016768000
RSI=0x0000000072c71188 is an unknown value
RDI=0x0000000000060002 is an unknown value
R8 =0x00000000000000cf is an unknown value
R9 =0x000000001902bbb0 is pointing into the stack for thread: 0x0000000016768000
R10=0x000000000000000b is an unknown value
R11=0x0000000072c6feb8 is an unknown value
R12=0x00000000219618c8 is an unknown value
R13=0x000000000000007d is an unknown value
R14=0x000000001ffbb050 is an unknown value
R15=0x000000001902d240 is pointing into the stack for thread: 0x0000000016768000
Stack: [0x0000000018f30000,0x0000000019030000], sp=0x000000001902bb70, free space=1006k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x4e11fa]
V [jvm.dll+0x4e2070]
V [jvm.dll+0x446e13]
V [jvm.dll+0x447f14]
V [jvm.dll+0x42b072]
V [jvm.dll+0x8230f]
V [jvm.dll+0x82c7f]
V [jvm.dll+0x220b7f]
V [jvm.dll+0x27276a]
C [msvcr100.dll+0x21d9f]
C [msvcr100.dll+0x21e3b]
C [KERNEL32.DLL+0x17c24]
C [ntdll.dll+0x6d4d1]
Current CompileTask:
C2: 125399 24471 4 com.sun.tools.javac.comp.Attr::checkIdInternal (680 bytes)
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0000000025aa2800 JavaThread "Cache worker for Java compile cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\javaCompile)" [_thread_blocked, id=14108, stack(0x000000002a760000,0x000000002a860000)]
0x0000000025aa1000 JavaThread "Cache worker for Java compile cache (D:\gradle\caches\5.4.1\javaCompile)" [_thread_blocked, id=1300, stack(0x000000002a560000,0x000000002a660000)]
0x0000000025aa8800 JavaThread "RMI TCP Connection(2)-127.0.0.1" daemon [_thread_in_native, id=14388, stack(0x000000002a660000,0x000000002a760000)]
0x0000000025aa8000 JavaThread "stdout" [_thread_in_native, id=1308, stack(0x000000002a460000,0x000000002a560000)]
0x0000000025aa7000 JavaThread "stderr" [_thread_in_native, id=9684, stack(0x000000002a360000,0x000000002a460000)]
0x0000000025aa6000 JavaThread "stdout" [_thread_in_native, id=19188, stack(0x000000002a260000,0x000000002a360000)]
0x0000000025aa4800 JavaThread "stderr" [_thread_in_native, id=16468, stack(0x000000002a160000,0x000000002a260000)]
0x0000000025aa3000 JavaThread "pool-3-thread-1" [_thread_blocked, id=2612, stack(0x0000000029310000,0x0000000029410000)]
0x0000000025aa0000 JavaThread "WorkerExecutor Queue Thread 5" [_thread_blocked, id=13644, stack(0x00000000287c0000,0x00000000288c0000)]
0x000000001d176800 JavaThread "WorkerExecutor Queue Thread 4" [_thread_blocked, id=10096, stack(0x0000000029460000,0x0000000029560000)]
0x000000001d176000 JavaThread "RMI TCP Connection(idle)" daemon [_thread_blocked, id=20128, stack(0x0000000029210000,0x0000000029310000)]
0x000000001876c800 JavaThread "RMI Reaper" [_thread_blocked, id=5220, stack(0x0000000029110000,0x0000000029210000)]
0x000000001876b000 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=14940, stack(0x0000000029010000,0x0000000029110000)]
0x0000000018769800 JavaThread "GC Daemon" daemon [_thread_blocked, id=18944, stack(0x0000000028bc0000,0x0000000028cc0000)]
0x000000001876f000 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=16768, stack(0x0000000000860000,0x0000000000960000)]
0x000000001876e000 JavaThread "WorkerExecutor Queue Thread 2" [_thread_blocked, id=9428, stack(0x00000000288c0000,0x00000000289c0000)]
0x0000000019ad6800 JavaThread "Cache worker for execution history cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\executionHistory)" [_thread_blocked, id=20332, stack(0x00000000286c0000,0x00000000287c0000)]
0x000000001fad3800 JavaThread "Execution worker for ':' Thread 7" [_thread_blocked, id=8208, stack(0x00000000283c0000,0x00000000284c0000)]
0x000000001facc000 JavaThread "Execution worker for ':' Thread 6" [_thread_blocked, id=9400, stack(0x0000000027ec0000,0x0000000027fc0000)]
0x000000001fad2000 JavaThread "Execution worker for ':' Thread 5" [_thread_blocked, id=19508, stack(0x0000000027dc0000,0x0000000027ec0000)]
0x000000001fad1800 JavaThread "Execution worker for ':' Thread 4" [_thread_blocked, id=10036, stack(0x0000000027cc0000,0x0000000027dc0000)]
0x000000001fad0000 JavaThread "Execution worker for ':' Thread 3" [_thread_blocked, id=9060, stack(0x0000000027bc0000,0x0000000027cc0000)]
0x000000001fad0800 JavaThread "Execution worker for ':' Thread 2" [_thread_blocked, id=19992, stack(0x0000000027ac0000,0x0000000027bc0000)]
0x000000001facf000 JavaThread "Execution worker for ':'" [_thread_in_vm, id=18252, stack(0x00000000279c0000,0x0000000027ac0000)]
0x000000001ce23000 JavaThread "Cache worker for file content cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\fileContent)" [_thread_blocked, id=19852, stack(0x00000000274c0000,0x00000000275c0000)]
0x000000001ce1c000 JavaThread "Cache worker for Build Output Cleanup Cache (D:\Android\workspace\GSA-Cloud2\.gradle\buildOutputCleanup)" [_thread_blocked, id=8180, stack(0x0000000023080000,0x0000000023180000)]
0x000000001ce17000 JavaThread "Build operations Thread 8" [_thread_blocked, id=14444, stack(0x0000000022980000,0x0000000022a80000)]
0x000000001ce1a800 JavaThread "Build operations Thread 7" [_thread_blocked, id=15228, stack(0x0000000022880000,0x0000000022980000)]
0x000000001ce14800 JavaThread "Build operations Thread 6" [_thread_blocked, id=10744, stack(0x0000000022780000,0x0000000022880000)]
0x000000001d183800 JavaThread "Build operations Thread 5" [_thread_blocked, id=7912, stack(0x0000000022680000,0x0000000022780000)]
0x000000001d183000 JavaThread "Build operations Thread 4" [_thread_blocked, id=17780, stack(0x0000000021330000,0x0000000021430000)]
0x000000001d182000 JavaThread "Build operations Thread 3" [_thread_blocked, id=16500, stack(0x0000000021230000,0x0000000021330000)]
0x000000001d181000 JavaThread "Build operations Thread 2" [_thread_blocked, id=19312, stack(0x0000000020e30000,0x0000000020f30000)]
0x000000001d179800 JavaThread "Build operations" [_thread_blocked, id=15716, stack(0x0000000020d30000,0x0000000020e30000)]
0x000000001d180800 JavaThread "Cache worker for cache directory md-rule (D:\gradle\caches\5.4.1\md-rule)" [_thread_blocked, id=18356, stack(0x000000001dda0000,0x000000001dea0000)]
0x000000001d17f800 JavaThread "Cache worker for cache directory md-supplier (D:\gradle\caches\5.4.1\md-supplier)" [_thread_blocked, id=17044, stack(0x000000001b800000,0x000000001b900000)]
0x000000001d178000 JavaThread "Cache worker for file hash cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\fileHashes)" [_thread_blocked, id=19484, stack(0x000000001b700000,0x000000001b800000)]
0x000000001d17d800 JavaThread "Thread-41" [_thread_blocked, id=9580, stack(0x000000001b600000,0x000000001b700000)]
0x000000001d17f000 JavaThread "Stdin handler" [_thread_blocked, id=16772, stack(0x000000001b400000,0x000000001b500000)]
0x000000001d17b000 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:58259 to /127.0.0.1:58273" [_thread_blocked, id=14612, stack(0x000000001b100000,0x000000001b200000)]
0x000000001d17e000 JavaThread "Cancel handler" [_thread_blocked, id=1776, stack(0x0000000000960000,0x0000000000a60000)]
0x000000001d175000 JavaThread "Handler for socket connection from /127.0.0.1:58259 to /127.0.0.1:58273" [_thread_in_native, id=14972, stack(0x0000000000760000,0x0000000000860000)]
0x000000001fad3000 JavaThread "Cache worker for file content cache (D:\gradle\caches\5.4.1\fileContent)" [_thread_blocked, id=2860, stack(0x00000000273c0000,0x00000000274c0000)]
0x000000001fac7800 JavaThread "Memory manager" [_thread_blocked, id=16088, stack(0x0000000023b80000,0x0000000023c80000)]
0x000000001ce14000 JavaThread "Cache worker for execution history cache (D:\gradle\caches\5.4.1\executionHistory)" [_thread_blocked, id=8884, stack(0x0000000020f30000,0x0000000021030000)]
0x0000000019ad5800 JavaThread "Cache worker for journal cache (D:\gradle\caches\journal-1)" [_thread_blocked, id=18976, stack(0x000000001bd00000,0x000000001be00000)]
0x0000000019ad8800 JavaThread "File lock request listener" [_thread_in_native, id=17968, stack(0x000000001bc00000,0x000000001bd00000)]
0x0000000019ad8000 JavaThread "Cache worker for file hash cache (D:\gradle\caches\5.4.1\fileHashes)" [_thread_blocked, id=15648, stack(0x000000001b900000,0x000000001ba00000)]
0x000000001a823800 JavaThread "Daemon worker" [_thread_blocked, id=11284, stack(0x000000001b500000,0x000000001b600000)]
0x000000001a6a8800 JavaThread "Daemon" [_thread_blocked, id=10384, stack(0x000000001b000000,0x000000001b100000)]
0x000000001a359000 JavaThread "Daemon periodic checks" [_thread_blocked, id=20304, stack(0x000000001af00000,0x000000001b000000)]
0x000000001a357000 JavaThread "Incoming local TCP Connector on port 58259" [_thread_in_native, id=11752, stack(0x000000001ae00000,0x000000001af00000)]
0x000000001a73b800 JavaThread "Daemon health stats" [_thread_blocked, id=1548, stack(0x000000001ab00000,0x000000001ac00000)]
0x0000000018661800 JavaThread "Service Thread" daemon [_thread_blocked, id=6672, stack(0x0000000019130000,0x0000000019230000)]
0x00000000185cb000 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=15028, stack(0x0000000019030000,0x0000000019130000)]
=>0x0000000016768000 JavaThread "C2 CompilerThread2" daemon [_thread_in_native, id=15704, stack(0x0000000018f30000,0x0000000019030000)]
0x0000000018570000 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=15224, stack(0x0000000018e30000,0x0000000018f30000)]
0x000000001856d800 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=2536, stack(0x0000000018d30000,0x0000000018e30000)]
0x000000001856a800 JavaThread "Attach Listener" daemon [_thread_blocked, id=13368, stack(0x0000000018c30000,0x0000000018d30000)]
0x0000000018556000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=19288, stack(0x0000000018b30000,0x0000000018c30000)]
0x000000000299d800 JavaThread "Finalizer" daemon [_thread_blocked, id=14072, stack(0x0000000018a30000,0x0000000018b30000)]
0x000000001675c800 JavaThread "Reference Handler" daemon [_thread_blocked, id=9836, stack(0x0000000018930000,0x0000000018a30000)]
0x0000000000b3d800 JavaThread "main" [_thread_blocked, id=8460, stack(0x0000000002380000,0x0000000002480000)]
Other Threads:
0x0000000016758000 VMThread [stack: 0x0000000018430000,0x0000000018530000] [id=19068]
0x0000000018663800 WatcherThread [stack: 0x0000000019230000,0x0000000019330000] [id=15460]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
heap address: 0x00000000a0000000, size: 1536 MB, Compressed Oops mode: 32-bit
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
Compressed class space size: 1073741824 Address: 0x0000000100000000
Heap:
PSYoungGen total 371712K, used 178138K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 251904K, 24% used [0x00000000e0000000,0x00000000e3cd6090,0x00000000ef600000)
from space 119808K, 96% used [0x00000000f8b00000,0x00000000ffc209f8,0x0000000100000000)
to space 136192K, 0% used [0x00000000ef600000,0x00000000ef600000,0x00000000f7b00000)
ParOldGen total 385024K, used 281338K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 73% used [0x00000000a0000000,0x00000000b12be998,0x00000000b7800000)
Metaspace used 105245K, capacity 111358K, committed 111488K, reserved 1146880K
class space used 13303K, capacity 14959K, committed 14976K, reserved 1048576K
Card table byte_map: [0x0000000011d60000,0x0000000012070000] byte_map_base: 0x0000000011860000
Marking Bits: (ParMarkBitMap*) 0x0000000072dff030
Begin Bits: [0x0000000012a70000, 0x0000000014270000)
End Bits: [0x0000000014270000, 0x0000000015a70000)
Polling page: 0x0000000000650000
CodeCache: size=245760Kb used=70299Kb max_used=70310Kb free=175460Kb
bounds [0x00000000029a0000, 0x0000000006eb0000, 0x00000000119a0000]
total_blobs=19751 nmethods=18785 adapters=876
compilation: enabled
Compilation events (10 events):
Event: 125.322 Thread 0x000000001856d800 24469 4 com.sun.tools.javac.jvm.Code::emit2 (78 bytes)
Event: 125.322 Thread 0x00000000185cb000 24479 3 com.sun.tools.javac.tree.JCTree$JCBreak::getTag (4 bytes)
Event: 125.323 Thread 0x00000000185cb000 nmethod 24479 0x0000000006e3a4d0 code [0x0000000006e3a620, 0x0000000006e3a770]
Event: 125.326 Thread 0x00000000185cb000 24480 3 com.sun.tools.javac.comp.MemberEnter$TypeAnnotate::visitNewClass (13 bytes)
Event: 125.326 Thread 0x00000000185cb000 nmethod 24480 0x0000000006e3a0d0 code [0x0000000006e3a240, 0x0000000006e3a408]
Event: 125.332 Thread 0x000000001856d800 nmethod 24469 0x0000000006e761d0 code [0x0000000006e76340, 0x0000000006e76998]
Event: 125.332 Thread 0x000000001856d800 24481 4 com.sun.tools.javac.comp.Resolve::isAccessible (332 bytes)
Event: 125.334 Thread 0x00000000185cb000 24482 3 com.sun.tools.javac.code.Type::isCompound (32 bytes)
Event: 125.334 Thread 0x00000000185cb000 nmethod 24482 0x0000000006e75c10 code [0x0000000006e75d80, 0x0000000006e76048]
Event: 125.334 Thread 0x00000000185cb000 24483 3 com.sun.tools.javac.code.Types::isSubtype (186 bytes)
GC Heap History (10 events):
Event: 106.944 GC heap before
{Heap before GC invocations=33 (full 5):
PSYoungGen total 438784K, used 404344K [0x00000000e0000000, 0x00000000fff00000, 0x0000000100000000)
eden space 356864K, 100% used [0x00000000e0000000,0x00000000f5c80000,0x00000000f5c80000)
from space 81920K, 57% used [0x00000000f5c80000,0x00000000f8ade180,0x00000000fac80000)
to space 81408K, 0% used [0x00000000faf80000,0x00000000faf80000,0x00000000fff00000)
ParOldGen total 385024K, used 216566K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 56% used [0x00000000a0000000,0x00000000ad37da60,0x00000000b7800000)
Metaspace used 100941K, capacity 106744K, committed 107136K, reserved 1142784K
class space used 12868K, capacity 14434K, committed 14464K, reserved 1048576K
Event: 107.007 GC heap after
Heap after GC invocations=33 (full 5):
PSYoungGen total 429568K, used 68370K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 348160K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f5400000)
from space 81408K, 83% used [0x00000000faf80000,0x00000000ff2449b8,0x00000000fff00000)
to space 88064K, 0% used [0x00000000f5400000,0x00000000f5400000,0x00000000faa00000)
ParOldGen total 385024K, used 216574K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 56% used [0x00000000a0000000,0x00000000ad37fa60,0x00000000b7800000)
Metaspace used 100941K, capacity 106744K, committed 107136K, reserved 1142784K
class space used 12868K, capacity 14434K, committed 14464K, reserved 1048576K
}
Event: 115.939 GC heap before
{Heap before GC invocations=34 (full 5):
PSYoungGen total 429568K, used 416530K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 348160K, 100% used [0x00000000e0000000,0x00000000f5400000,0x00000000f5400000)
from space 81408K, 83% used [0x00000000faf80000,0x00000000ff2449b8,0x00000000fff00000)
to space 88064K, 0% used [0x00000000f5400000,0x00000000f5400000,0x00000000faa00000)
ParOldGen total 385024K, used 216574K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 56% used [0x00000000a0000000,0x00000000ad37fa60,0x00000000b7800000)
Metaspace used 103132K, capacity 109184K, committed 109568K, reserved 1144832K
class space used 13135K, capacity 14772K, committed 14848K, reserved 1048576K
Event: 116.069 GC heap after
Heap after GC invocations=34 (full 5):
PSYoungGen total 436224K, used 88047K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 348160K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f5400000)
from space 88064K, 99% used [0x00000000f5400000,0x00000000fa9fbdc8,0x00000000faa00000)
to space 88064K, 0% used [0x00000000faa00000,0x00000000faa00000,0x0000000100000000)
ParOldGen total 385024K, used 246722K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 64% used [0x00000000a0000000,0x00000000af0f0988,0x00000000b7800000)
Metaspace used 103132K, capacity 109184K, committed 109568K, reserved 1144832K
class space used 13135K, capacity 14772K, committed 14848K, reserved 1048576K
}
Event: 118.457 GC heap before
{Heap before GC invocations=35 (full 5):
PSYoungGen total 436224K, used 436207K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 348160K, 100% used [0x00000000e0000000,0x00000000f5400000,0x00000000f5400000)
from space 88064K, 99% used [0x00000000f5400000,0x00000000fa9fbdc8,0x00000000faa00000)
to space 88064K, 0% used [0x00000000faa00000,0x00000000faa00000,0x0000000100000000)
ParOldGen total 385024K, used 246722K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 64% used [0x00000000a0000000,0x00000000af0f0988,0x00000000b7800000)
Metaspace used 103459K, capacity 109590K, committed 109824K, reserved 1144832K
class space used 13165K, capacity 14797K, committed 14848K, reserved 1048576K
Event: 118.531 GC heap after
Heap after GC invocations=35 (full 5):
PSYoungGen total 393216K, used 59153K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 305152K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f2a00000)
from space 88064K, 67% used [0x00000000faa00000,0x00000000fe3c45d0,0x0000000100000000)
to space 109568K, 0% used [0x00000000f2a00000,0x00000000f2a00000,0x00000000f9500000)
ParOldGen total 385024K, used 281322K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 73% used [0x00000000a0000000,0x00000000b12ba998,0x00000000b7800000)
Metaspace used 103459K, capacity 109590K, committed 109824K, reserved 1144832K
class space used 13165K, capacity 14797K, committed 14848K, reserved 1048576K
}
Event: 120.732 GC heap before
{Heap before GC invocations=36 (full 5):
PSYoungGen total 393216K, used 364305K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 305152K, 100% used [0x00000000e0000000,0x00000000f2a00000,0x00000000f2a00000)
from space 88064K, 67% used [0x00000000faa00000,0x00000000fe3c45d0,0x0000000100000000)
to space 109568K, 0% used [0x00000000f2a00000,0x00000000f2a00000,0x00000000f9500000)
ParOldGen total 385024K, used 281322K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 73% used [0x00000000a0000000,0x00000000b12ba998,0x00000000b7800000)
Metaspace used 103481K, capacity 109590K, committed 109824K, reserved 1144832K
class space used 13165K, capacity 14797K, committed 14848K, reserved 1048576K
Event: 120.787 GC heap after
Heap after GC invocations=36 (full 5):
PSYoungGen total 398336K, used 93022K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 305152K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000f2a00000)
from space 93184K, 99% used [0x00000000f2a00000,0x00000000f84d7ad0,0x00000000f8500000)
to space 119808K, 0% used [0x00000000f8b00000,0x00000000f8b00000,0x0000000100000000)
ParOldGen total 385024K, used 281330K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 73% used [0x00000000a0000000,0x00000000b12bc998,0x00000000b7800000)
Metaspace used 103481K, capacity 109590K, committed 109824K, reserved 1144832K
class space used 13165K, capacity 14797K, committed 14848K, reserved 1048576K
}
Event: 123.641 GC heap before
{Heap before GC invocations=37 (full 5):
PSYoungGen total 398336K, used 398174K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 305152K, 100% used [0x00000000e0000000,0x00000000f2a00000,0x00000000f2a00000)
from space 93184K, 99% used [0x00000000f2a00000,0x00000000f84d7ad0,0x00000000f8500000)
to space 119808K, 0% used [0x00000000f8b00000,0x00000000f8b00000,0x0000000100000000)
ParOldGen total 385024K, used 281330K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 73% used [0x00000000a0000000,0x00000000b12bc998,0x00000000b7800000)
Metaspace used 104947K, capacity 111102K, committed 111232K, reserved 1144832K
class space used 13299K, capacity 14959K, committed 14976K, reserved 1048576K
Event: 123.704 GC heap after
Heap after GC invocations=37 (full 5):
PSYoungGen total 371712K, used 115842K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 251904K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000ef600000)
from space 119808K, 96% used [0x00000000f8b00000,0x00000000ffc209f8,0x0000000100000000)
to space 136192K, 0% used [0x00000000ef600000,0x00000000ef600000,0x00000000f7b00000)
ParOldGen total 385024K, used 281338K [0x00000000a0000000, 0x00000000b7800000, 0x00000000e0000000)
object space 385024K, 73% used [0x00000000a0000000,0x00000000b12be998,0x00000000b7800000)
Metaspace used 104947K, capacity 111102K, committed 111232K, reserved 1144832K
class space used 13299K, capacity 14959K, committed 14976K, reserved 1048576K
}
Deoptimization events (10 events):
Event: 125.096 Thread 0x000000001facf000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000065ecdd4 method=com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z @ 37
Event: 125.098 Thread 0x000000001facf000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000065ecdd4 method=com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z @ 37
Event: 125.101 Thread 0x000000001facf000 Uncommon trap: reason=bimorphic action=maybe_recompile pc=0x00000000065ecdd4 method=com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z @ 37
Event: 125.147 Thread 0x000000001facf000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000006a5ec54 method=com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z @ 21
Event: 125.147 Thread 0x000000001facf000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000006a5ec54 method=com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z @ 21
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000000677f5c4 method=com.sun.tools.javac.code.Type.isCompound()Z @ 23
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000006e48cc0 method=com.sun.tools.javac.code.Types.isSubtype(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z @ 117
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000006743d60 method=com.sun.tools.javac.code.Types.isSubtype(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z @ 117
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000005bbd66c method=com.sun.tools.javac.code.Types.isSubtype(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z @ 117
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000000065b7cf4 method=com.sun.tools.javac.code.Type$ClassType.isErroneous()Z @ 28
Classes redefined (0 events):
No events
Internal exceptions (10 events):
Event: 118.372 Thread 0x000000001facf000 Exception <a 'java/lang/NullPointerException'> (0x00000000f438af78) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\runtime\sharedRuntime.cpp, line 605]
Event: 118.374 Thread 0x000000001facf000 NullPointerException in IC check 0x0000000002aa3800
Event: 118.374 Thread 0x000000001facf000 Exception <a 'java/lang/NullPointerException'> (0x00000000f43cc828) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\runtime\sharedRuntime.cpp, line 605]
Event: 118.376 Thread 0x000000001facf000 NullPointerException in IC check 0x0000000002aa3800
Event: 118.376 Thread 0x000000001facf000 Exception <a 'java/lang/NullPointerException'> (0x00000000f440e640) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\runtime\sharedRuntime.cpp, line 605]
Event: 118.819 Thread 0x000000001facf000 Implicit null exception at 0x000000000680e876 to 0x000000000680ea21
Event: 121.162 Thread 0x000000001facf000 Implicit null exception at 0x0000000002c5225d to 0x0000000002c523c9
Event: 121.162 Thread 0x000000001facf000 Implicit null exception at 0x00000000038fe08c to 0x00000000038fe0cd
Event: 122.273 Thread 0x000000001facf000 Implicit null exception at 0x000000000698a756 to 0x000000000698b309
Event: 123.872 Thread 0x000000001facf000 Implicit null exception at 0x0000000005fb960a to 0x0000000005fba195
Events (10 events):
Event: 125.333 Thread 0x000000001facf000 DEOPT UNPACKING pc=0x00000000029e557b sp=0x0000000027ab9a98 mode 2
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: trap_request=0xffffff65 fr.pc=0x0000000006743d60
Event: 125.333 Thread 0x000000001facf000 DEOPT PACKING pc=0x0000000006743d60 sp=0x0000000027ab9b40
Event: 125.333 Thread 0x000000001facf000 DEOPT UNPACKING pc=0x00000000029e557b sp=0x0000000027ab9a88 mode 2
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: trap_request=0xffffff65 fr.pc=0x0000000005bbd66c
Event: 125.333 Thread 0x000000001facf000 DEOPT PACKING pc=0x0000000005bbd66c sp=0x0000000027ab9ad0
Event: 125.333 Thread 0x000000001facf000 DEOPT UNPACKING pc=0x00000000029e557b sp=0x0000000027ab9a88 mode 2
Event: 125.333 Thread 0x000000001facf000 Uncommon trap: trap_request=0xffffffde fr.pc=0x00000000065b7cf4
Event: 125.333 Thread 0x000000001facf000 DEOPT PACKING pc=0x00000000065b7cf4 sp=0x0000000027aba450
Event: 125.334 Thread 0x000000001facf000 DEOPT UNPACKING pc=0x00000000029e557b sp=0x0000000027aba408 mode 2
Dynamic libraries:
0x00007ff6110a0000 - 0x00007ff6110d1000 D:\Android\AndroidStudio\jre\bin\java.exe
0x00007ffdef780000 - 0x00007ffdef970000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffded970000 - 0x00007ffdeda22000 C:\Windows\System32\KERNEL32.DLL
0x00007ffdec830000 - 0x00007ffdecad5000 C:\Windows\System32\KERNELBASE.dll
0x00007ffdedea0000 - 0x00007ffdedf43000 C:\Windows\System32\ADVAPI32.dll
0x00007ffdedc80000 - 0x00007ffdedd1e000 C:\Windows\System32\msvcrt.dll
0x00007ffdede00000 - 0x00007ffdede97000 C:\Windows\System32\sechost.dll
0x00007ffdedfd0000 - 0x00007ffdee0ef000 C:\Windows\System32\RPCRT4.dll
0x00007ffdeda30000 - 0x00007ffdedbc4000 C:\Windows\System32\USER32.dll
0x00007ffdec800000 - 0x00007ffdec821000 C:\Windows\System32\win32u.dll
0x00007ffdeddd0000 - 0x00007ffdeddf6000 C:\Windows\System32\GDI32.dll
0x00007ffded610000 - 0x00007ffded7a8000 C:\Windows\System32\gdi32full.dll
0x00007ffdecae0000 - 0x00007ffdecb7e000 C:\Windows\System32\msvcp_win.dll
0x00007ffdec700000 - 0x00007ffdec7fa000 C:\Windows\System32\ucrtbase.dll
0x00007ffdd2f00000 - 0x00007ffdd3184000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.1316_none_9e7a364fe461dbd7\COMCTL32.dll
0x00007ffdee9c0000 - 0x00007ffdeecf7000 C:\Windows\System32\combase.dll
0x00007ffdecdb0000 - 0x00007ffdece31000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffdef5d0000 - 0x00007ffdef5fe000 C:\Windows\System32\IMM32.DLL
0x0000000072470000 - 0x0000000072542000 D:\Android\AndroidStudio\jre\jre\bin\msvcr100.dll
0x0000000072630000 - 0x0000000072e7b000 D:\Android\AndroidStudio\jre\jre\bin\server\jvm.dll
0x00007ffdee9b0000 - 0x00007ffdee9b8000 C:\Windows\System32\PSAPI.DLL
0x00007ffde93b0000 - 0x00007ffde93d4000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffde3cc0000 - 0x00007ffde3cca000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffdd58c0000 - 0x00007ffdd58c9000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffdeed00000 - 0x00007ffdeed6f000 C:\Windows\System32\WS2_32.dll
0x00007ffde9380000 - 0x00007ffde93ad000 C:\Windows\SYSTEM32\winmmbase.dll
0x00007ffdece40000 - 0x00007ffdece8a000 C:\Windows\System32\cfgmgr32.dll
0x00007ffde6c90000 - 0x00007ffde6c9f000 D:\Android\AndroidStudio\jre\jre\bin\verify.dll
0x00007ffde47b0000 - 0x00007ffde47d9000 D:\Android\AndroidStudio\jre\jre\bin\java.dll
0x00007ffdcab20000 - 0x00007ffdcab36000 D:\Android\AndroidStudio\jre\jre\bin\zip.dll
0x00007ffdee220000 - 0x00007ffdee908000 C:\Windows\System32\SHELL32.dll
0x00007ffdedbd0000 - 0x00007ffdedc77000 C:\Windows\System32\shcore.dll
0x00007ffdece90000 - 0x00007ffded60b000 C:\Windows\System32\windows.storage.dll
0x00007ffdec6b0000 - 0x00007ffdec6d3000 C:\Windows\System32\profapi.dll
0x00007ffdec640000 - 0x00007ffdec68a000 C:\Windows\System32\powrprof.dll
0x00007ffdec630000 - 0x00007ffdec640000 C:\Windows\System32\UMPDC.dll
0x00007ffdee950000 - 0x00007ffdee9a2000 C:\Windows\System32\shlwapi.dll
0x00007ffdec6e0000 - 0x00007ffdec6f1000 C:\Windows\System32\kernel.appcore.dll
0x00007ffded810000 - 0x00007ffded827000 C:\Windows\System32\cryptsp.dll
0x00007ffdcab00000 - 0x00007ffdcab1a000 D:\Android\AndroidStudio\jre\jre\bin\net.dll
0x00007ffdebe30000 - 0x00007ffdebe97000 C:\Windows\system32\mswsock.dll
0x00007ffdba5c0000 - 0x00007ffdba5d3000 D:\Android\AndroidStudio\jre\jre\bin\nio.dll
0x00007ffde8b90000 - 0x00007ffde8bb6000 D:\gradle\native\29\windows-amd64\native-platform.dll
0x00007ffde47a0000 - 0x00007ffde47ad000 D:\Android\AndroidStudio\jre\jre\bin\management.dll
0x00007ffdeb9b0000 - 0x00007ffdeb9e3000 C:\Windows\system32\rsaenh.dll
0x00007ffdeccd0000 - 0x00007ffdeccf6000 C:\Windows\System32\bcrypt.dll
0x00007ffdec510000 - 0x00007ffdec535000 C:\Windows\SYSTEM32\USERENV.dll
0x00007ffdebff0000 - 0x00007ffdebffc000 C:\Windows\SYSTEM32\CRYPTBASE.dll
0x00007ffdebb50000 - 0x00007ffdebb8a000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
0x00007ffdee910000 - 0x00007ffdee918000 C:\Windows\System32\NSI.dll
0x00007ffddedd0000 - 0x00007ffddede6000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
0x00007ffddedb0000 - 0x00007ffddedcc000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
0x00007ffdebbe0000 - 0x00007ffdebcab000 C:\Windows\SYSTEM32\DNSAPI.dll
0x00007ffde3d00000 - 0x00007ffde3d24000 D:\Android\AndroidStudio\jre\jre\bin\sunec.dll
0x00007ffdde370000 - 0x00007ffdde37a000 C:\Windows\System32\rasadhlp.dll
0x00007ffddebd0000 - 0x00007ffddec47000 C:\Windows\System32\fwpuclnt.dll
0x00007ffde6ca0000 - 0x00007ffde6cab000 D:\Android\AndroidStudio\jre\jre\bin\sunmscapi.dll
0x00007ffdecb80000 - 0x00007ffdeccca000 C:\Windows\System32\CRYPT32.dll
0x00007ffdec690000 - 0x00007ffdec6a2000 C:\Windows\System32\MSASN1.dll
0x00007ffdeb630000 - 0x00007ffdeb661000 C:\Windows\SYSTEM32\ntmarta.dll
0x00007ffde6f80000 - 0x00007ffde6f9e000 C:\Users\86186\AppData\Local\Temp\native-platform3563505844156683204dir\native-platform.dll
0x00007ffde8c70000 - 0x00007ffde8e64000 C:\Windows\SYSTEM32\dbghelp.dll
VM Arguments:
jvm_args: -Xmx1536m -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant
java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 5.4.1
java_class_path (initial): D:\gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1\lib\gradle-launcher-5.4.1.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=D:\Android\AndroidStudio\jre
CLASSPATH=.;D:\Android\AndroidStudio\jre/lib/tools.jar;D:\Android\AndroidStudio\jre/lib/dt.jar
PATH=D:\Android\AndroidStudio\jre/bin;D:\Android\AndroidStudio\jre/jre/bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\Android\AndroidSDK\platform-tools;D:\Git\cmd;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\86186\AppData\Local\Microsoft\WindowsApps;
USERNAME=86186
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 126 Stepping 5, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.1316)
CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 126 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
Memory: 4k page, physical 8084284k(297048k free), swap 20142908k(6476464k free)
vm_info: OpenJDK 64-Bit Server VM (25.242-b01) for windows-amd64 JRE (1.8.0_242-release-1644-b01), built by "builder" with MS VC++ 10.0 (VS2010)
time: Wed Jan 27 15:18:42 2021
timezone: й׼ʱ
elapsed time: 125 seconds (0d 0h 2m 5s)
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffa0534a6dd, pid=3092, tid=0x0000000000003ea4
#
# JRE version: OpenJDK Runtime Environment (8.0_242-b01) (build 1.8.0_242-release-1644-b01)
# Java VM: OpenJDK 64-Bit Server VM (25.242-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [zip.dll+0xa6dd]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x0000000021a72000): JavaThread "WorkerExecutor Queue Thread 3" [_thread_in_native, id=16036, stack(0x000000002be70000,0x000000002bf70000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x0000000093433105
Registers:
RAX=0x0000000000000073, RBX=0x000000002030ea00, RCX=0x0000000000000001, RDX=0x000000002bf6a6f0
RSP=0x000000002bf6a670, RBP=0x000000002bf6ab70, RSI=0x00000000d522f00e, RDI=0x0000000021a721e0
R8 =0x000000000000003e, R9 =0x0000000000000000, R10=0x0000000093433105, R11=0x000000002bf6a6f0
R12=0x000000002bf6a6f0, R13=0x000000000000003e, R14=0x000000002bf6ab98, R15=0x0000000021a72000
RIP=0x00007ffa0534a6dd, EFLAGS=0x0000000000010202
Top of Stack: (sp=0x000000002bf6a670)
0x000000002bf6a670: 000000002bf6a680 0000000072657474
0x000000002bf6a680: 2f64696f72646e61 0000000062ad2206
0x000000002bf6a690: 0000000021a72000 000000002bf6ab98
0x000000002bf6a6a0: 0000000000000000 000000002030ea00
0x000000002bf6a6b0: 0000000021a721e0 00007ffa05342023
0x000000002bf6a6c0: 000000002bf6a6f0 000000002bf6ab70
0x000000002bf6a6d0: 000000000000003e 322d73656c75646f
0x000000002bf6a6e0: 000000002bf6a6f0 6f72646e612f312e
0x000000002bf6a6f0: 2f64696f72646e61 646e696261746164
0x000000002bf6a700: 6c6f6f742f676e69 532f65726f74732f
0x000000002bf6a710: 6f74537265747465 7470616441246572
0x000000002bf6a720: 7265747465537265 37007373616c632e
0x000000002bf6a730: 6164373661366639 6464623637626361
0x000000002bf6a740: 62617461642f3537 632d676e69646e69
0x000000002bf6a750: 2d72656c69706d6f 616a2e302e352e33
0x000000002bf6a760: 00000000e4190072 0000000000000000
Instructions: (pc=0x00007ffa0534a6dd)
0x00007ffa0534a6bd: 56 41 57 48 83 ec 20 4d 63 e8 33 f6 48 8b d9 45
0x00007ffa0534a6cd: 8a f9 4c 8b e2 4c 8b d2 41 8b cd 45 85 c0 7e 12
0x00007ffa0534a6dd: 41 0f be 02 6b f6 1f ff c9 03 f0 49 ff c2 85 c9
0x00007ffa0534a6ed: 7f ee 48 8b 4b 38 33 ff e8 f8 07 00 00 39 7b 60
Register to memory mapping:
RAX=0x0000000000000073 is an unknown value
RBX=0x000000002030ea00 is an unknown value
RCX=0x0000000000000001 is an unknown value
RDX=0x000000002bf6a6f0 is pointing into the stack for thread: 0x0000000021a72000
RSP=0x000000002bf6a670 is pointing into the stack for thread: 0x0000000021a72000
RBP=0x000000002bf6ab70 is pointing into the stack for thread: 0x0000000021a72000
RSI=0x00000000d522f00e is an unallocated location in the heap
RDI=0x0000000021a721e0 is an unknown value
R8 =0x000000000000003e is an unknown value
R9 =0x0000000000000000 is an unknown value
R10=0x0000000093433105 is an unknown value
R11=0x000000002bf6a6f0 is pointing into the stack for thread: 0x0000000021a72000
R12=0x000000002bf6a6f0 is pointing into the stack for thread: 0x0000000021a72000
R13=0x000000000000003e is an unknown value
R14=0x000000002bf6ab98 is pointing into the stack for thread: 0x0000000021a72000
R15=0x0000000021a72000 is a thread
Stack: [0x000000002be70000,0x000000002bf70000], sp=0x000000002bf6a670, free space=1001k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [zip.dll+0xa6dd]
C [zip.dll+0x2023]
C 0x0000000002d16c60
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 221 java.util.zip.ZipFile.getEntry(J[BZ)J (0 bytes) @ 0x0000000002d16bda [0x0000000002d16b80+0x5a]
J 31689 C2 java.util.zip.ZipFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; (304 bytes) @ 0x0000000006d30864 [0x0000000006d30780+0xe4]
J 5698 C2 java.net.URLClassLoader$1.run()Ljava/lang/Object; (5 bytes) @ 0x0000000003cd3c18 [0x0000000003cd2f80+0xc98]
v ~StubRoutines::call_stub
J 278 java.security.AccessController.doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object; (0 bytes) @ 0x0000000002d396e6 [0x0000000002d39680+0x66]
J 1438 C2 java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class; (47 bytes) @ 0x0000000003086b70 [0x0000000003086ae0+0x90]
J 2629 C2 java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class; (122 bytes) @ 0x0000000003558984 [0x0000000003558580+0x404]
J 2363 C2 java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class; (7 bytes) @ 0x0000000003446880 [0x0000000003446840+0x40]
v ~StubRoutines::call_stub
j android.databinding.tool.Context.init(Ljavax/annotation/processing/ProcessingEnvironment;Landroid/databinding/tool/CompilerArguments;)V+89
j android.databinding.annotationprocessor.ProcessDataBinding.doProcess(Ljavax/annotation/processing/RoundEnvironment;)Z+79
j android.databinding.annotationprocessor.ProcessDataBinding.process(Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z+2
j org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z+6
j org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z+17
j com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(Ljavax/annotation/processing/Processor;Ljava/util/Set;Ljavax/annotation/processing/RoundEnvironment;)Z+3
j com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(Lcom/sun/tools/javac/util/Context;Ljava/util/Set;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V+316
j com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(Lcom/sun/tools/javac/processing/JavacProcessingEnvironment;Lcom/sun/tools/javac/util/Context;Ljava/util/Set;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V+6
j com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(ZZ)V+111
j com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(Lcom/sun/tools/javac/util/Context;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/lang/Iterable;Lcom/sun/tools/javac/util/Log$DeferredDiagnosticHandler;)Lcom/sun/tools/javac/main/JavaCompiler;+89
j com.sun.tools.javac.main.JavaCompiler.processAnnotations(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/main/JavaCompiler;+461
j com.sun.tools.javac.main.JavaCompiler.processAnnotations(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/main/JavaCompiler;+5
j org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(Lorg/jetbrains/kotlin/kapt3/base/KaptContext;Ljava/util/List;Ljava/util/List;Lcom/sun/tools/javac/util/List;)V+906
j org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(Lorg/jetbrains/kotlin/kapt3/base/KaptContext;Ljava/util/List;Ljava/util/List;Lcom/sun/tools/javac/util/List;ILjava/lang/Object;)V+22
j org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Lorg/jetbrains/kotlin/base/kapt3/KaptOptions;)Z+187
v ~StubRoutines::call_stub
J 1642 sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (0 bytes) @ 0x000000000310d93f [0x000000000310d8c0+0x7f]
J 14470 C2 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x0000000005286ad0 [0x0000000005286a60+0x70]
J 6623 C2 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x0000000003ee7944 [0x0000000003ee78c0+0x84]
j org.jetbrains.kotlin.gradle.internal.KaptExecution.run()V+448
j org.gradle.workers.internal.DefaultWorkerServer.execute(Lorg/gradle/workers/internal/ActionExecutionSpec;)Lorg/gradle/workers/internal/DefaultWorkResult;+39
j org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.execute(Lorg/gradle/workers/internal/ActionExecutionSpec;)Lorg/gradle/workers/internal/DefaultWorkResult;+20
j org.gradle.workers.internal.AbstractWorker$1.call(Lorg/gradle/internal/operations/BuildOperationContext;)Lorg/gradle/workers/internal/DefaultWorkResult;+8
j org.gradle.workers.internal.AbstractWorker$1.call(Lorg/gradle/internal/operations/BuildOperationContext;)Ljava/lang/Object;+2
J 15260 C2 org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(Lorg/gradle/internal/operations/BuildOperationDescriptor;Lorg/gradle/internal/operations/DefaultBuildOperationExecutor$DefaultBuildOperationContext;Lorg/gradle/internal/operations/DefaultBuildOperationExecutor$BuildOperationExecutionListener;)Lorg/gradle/internal/operations/BuildOperation; (82 bytes) @ 0x0000000004837e38 [0x00000000048379a0+0x498]
J 20656 C2 org.gradle.internal.operations.DefaultBuildOperationExecutor.call(Lorg/gradle/internal/operations/CallableBuildOperation;)Ljava/lang/Object; (38 bytes) @ 0x00000000044d805c [0x00000000044d7840+0x81c]
J 13512 C2 org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(Lorg/gradle/internal/operations/CallableBuildOperation;)Ljava/lang/Object; (11 bytes) @ 0x0000000002fc6c68 [0x0000000002fc6c20+0x48]
j org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(Lorg/gradle/workers/internal/ActionExecutionSpec;Lorg/gradle/internal/operations/BuildOperationRef;Lorg/gradle/workers/internal/AbstractWorker$Work;)Lorg/gradle/workers/internal/DefaultWorkResult;+15
j org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(Lorg/gradle/workers/internal/ActionExecutionSpec;Lorg/gradle/internal/operations/BuildOperationRef;)Lorg/gradle/workers/internal/DefaultWorkResult;+11
j org.gradle.workers.internal.DefaultWorkerExecutor$1.call()Lorg/gradle/workers/internal/DefaultWorkResult;+32
j org.gradle.workers.internal.DefaultWorkerExecutor$1.call()Ljava/lang/Object;+1
J 25980 C2 java.util.concurrent.FutureTask.run()V (126 bytes) @ 0x00000000059bd1b8 [0x00000000059bcfe0+0x1d8]
j org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(Lorg/gradle/internal/work/ConditionalExecution;)V+6
j org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(Lorg/gradle/internal/work/ConditionalExecution;)V+8
j org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run()V+11
j java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4
j java.util.concurrent.FutureTask.run()V+42
J 9768 C1 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run()V (59 bytes) @ 0x0000000002dc453c [0x0000000002dc4020+0x51c]
j java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+95
j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run()V+7
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x000000002509e000 JavaThread "RMI TCP Connection(7)-127.0.0.1" daemon [_thread_in_native, id=5756, stack(0x000000002c480000,0x000000002c580000)]
0x000000002509d800 JavaThread "RMI RenewClean-[127.0.0.1:17021,org.jetbrains.kotlin.daemon.common.LoopbackNetworkInterface$ClientLoopbackSocketFactory@5b35bb46]" daemon [_thread_blocked, id=7900, stack(0x000000002c380000,0x000000002c480000)]
0x000000002509c000 JavaThread "WorkerExecutor Queue Thread 9" [_thread_blocked, id=8072, stack(0x000000002bd70000,0x000000002be70000)]
0x0000000021a77800 JavaThread "RMI TCP Connection(8)-127.0.0.1" daemon [_thread_in_native, id=16576, stack(0x000000002d920000,0x000000002da20000)]
=>0x0000000021a72000 JavaThread "WorkerExecutor Queue Thread 3" [_thread_in_native, id=16036, stack(0x000000002be70000,0x000000002bf70000)]
0x0000000021a6d000 JavaThread "Cache worker for Java compile cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\javaCompile)" [_thread_blocked, id=16492, stack(0x0000000028440000,0x0000000028540000)]
0x0000000021a73800 JavaThread "Cache worker for Java compile cache (D:\gradle\caches\5.4.1\javaCompile)" [_thread_blocked, id=5712, stack(0x0000000022280000,0x0000000022380000)]
0x0000000021a73000 JavaThread "Cache worker for execution history cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\executionHistory)" [_thread_blocked, id=11644, stack(0x000000002b870000,0x000000002b970000)]
0x0000000021a70000 JavaThread "Execution worker for ':' Thread 7" [_thread_blocked, id=15540, stack(0x000000002b770000,0x000000002b870000)]
0x0000000021a6d800 JavaThread "Execution worker for ':' Thread 6" [_thread_blocked, id=3848, stack(0x000000002b670000,0x000000002b770000)]
0x0000000019889000 JavaThread "Execution worker for ':' Thread 5" [_thread_blocked, id=2256, stack(0x000000002b570000,0x000000002b670000)]
0x0000000019887000 JavaThread "Execution worker for ':' Thread 4" [_thread_blocked, id=7604, stack(0x000000002b470000,0x000000002b570000)]
0x000000001d1f5800 JavaThread "Execution worker for ':' Thread 3" [_thread_blocked, id=2352, stack(0x0000000028940000,0x0000000028a40000)]
0x000000001d1f4800 JavaThread "Execution worker for ':' Thread 2" [_thread_blocked, id=17136, stack(0x0000000028590000,0x0000000028690000)]
0x000000001d1ee800 JavaThread "Execution worker for ':'" [_thread_in_native, id=4840, stack(0x0000000022450000,0x0000000022550000)]
0x000000001d1ed000 JavaThread "Cache worker for file content cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\fileContent)" [_thread_blocked, id=14564, stack(0x0000000022560000,0x0000000022660000)]
0x000000001d1f3000 JavaThread "Cache worker for Build Output Cleanup Cache (D:\Android\workspace\GSA-Cloud2\.gradle\buildOutputCleanup)" [_thread_blocked, id=3344, stack(0x0000000028340000,0x0000000028440000)]
0x000000001d1f0800 JavaThread "Build operations Thread 8" [_thread_blocked, id=14536, stack(0x0000000028240000,0x0000000028340000)]
0x000000001d1f1800 JavaThread "Build operations Thread 7" [_thread_blocked, id=3664, stack(0x0000000028140000,0x0000000028240000)]
0x0000000020612000 JavaThread "Build operations Thread 6" [_thread_blocked, id=12724, stack(0x00000000271e0000,0x00000000272e0000)]
0x0000000020615800 JavaThread "Build operations Thread 5" [_thread_blocked, id=15896, stack(0x00000000232e0000,0x00000000233e0000)]
0x0000000020611800 JavaThread "Build operations Thread 4" [_thread_blocked, id=14360, stack(0x0000000022be0000,0x0000000022ce0000)]
0x000000002060a000 JavaThread "Build operations Thread 3" [_thread_blocked, id=2212, stack(0x0000000022ae0000,0x0000000022be0000)]
0x0000000020610800 JavaThread "Build operations Thread 2" [_thread_blocked, id=15632, stack(0x00000000229e0000,0x0000000022ae0000)]
0x0000000020609000 JavaThread "Build operations" [_thread_blocked, id=16420, stack(0x00000000228e0000,0x00000000229e0000)]
0x000000002060b800 JavaThread "Cache worker for cache directory md-rule (D:\gradle\caches\5.4.1\md-rule)" [_thread_blocked, id=15872, stack(0x000000001f670000,0x000000001f770000)]
0x000000002060a800 JavaThread "Cache worker for cache directory md-supplier (D:\gradle\caches\5.4.1\md-supplier)" [_thread_blocked, id=7460, stack(0x000000001f570000,0x000000001f670000)]
0x000000002060e800 JavaThread "Cache worker for file hash cache (D:\Android\workspace\GSA-Cloud2\.gradle\5.4.1\fileHashes)" [_thread_blocked, id=3680, stack(0x000000001ba00000,0x000000001bb00000)]
0x0000000020610000 JavaThread "Thread-42" [_thread_blocked, id=14048, stack(0x000000001b900000,0x000000001ba00000)]
0x000000001d63a000 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:51442 to /127.0.0.1:51512" [_thread_blocked, id=5972, stack(0x000000001b600000,0x000000001b700000)]
0x000000001d639800 JavaThread "Cancel handler" [_thread_blocked, id=13728, stack(0x000000001b300000,0x000000001b400000)]
0x000000001d63c800 JavaThread "Handler for socket connection from /127.0.0.1:51442 to /127.0.0.1:51512" [_thread_in_native, id=4548, stack(0x0000000000950000,0x0000000000a50000)]
0x000000001d1f9000 JavaThread "RMI TCP Connection(6)-127.0.0.1" daemon [_thread_in_native, id=17232, stack(0x0000000028d40000,0x0000000028e40000)]
0x0000000020617800 JavaThread "RMI Reaper" [_thread_blocked, id=5544, stack(0x0000000028c40000,0x0000000028d40000)]
0x0000000020617000 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=3012, stack(0x0000000028b40000,0x0000000028c40000)]
0x0000000020616000 JavaThread "GC Daemon" daemon [_thread_blocked, id=8500, stack(0x0000000028a40000,0x0000000028b40000)]
0x0000000020614800 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=16644, stack(0x0000000027990000,0x0000000027a90000)]
0x000000002060d800 JavaThread "Cache worker for file content cache (D:\gradle\caches\5.4.1\fileContent)" [_thread_blocked, id=4076, stack(0x00000000270e0000,0x00000000271e0000)]
0x000000001d1f7000 JavaThread "Memory manager" [_thread_blocked, id=11748, stack(0x0000000023de0000,0x0000000023ee0000)]
0x000000001d1f2800 JavaThread "Cache worker for execution history cache (D:\gradle\caches\5.4.1\executionHistory)" [_thread_blocked, id=7928, stack(0x00000000211b0000,0x00000000212b0000)]
0x0000000019886000 JavaThread "Cache worker for journal cache (D:\gradle\caches\journal-1)" [_thread_blocked, id=7752, stack(0x000000001ccd0000,0x000000001cdd0000)]
0x000000001988c000 JavaThread "File lock request listener" [_thread_in_native, id=10920, stack(0x000000001cbd0000,0x000000001ccd0000)]
0x0000000019885000 JavaThread "Cache worker for file hash cache (D:\gradle\caches\5.4.1\fileHashes)" [_thread_blocked, id=1540, stack(0x000000001cad0000,0x000000001cbd0000)]
0x000000001a769000 JavaThread "Daemon worker" [_thread_blocked, id=7724, stack(0x000000001b700000,0x000000001b800000)]
0x000000001a673800 JavaThread "Daemon" [_thread_blocked, id=7112, stack(0x000000001b200000,0x000000001b300000)]
0x000000001a667000 JavaThread "Daemon periodic checks" [_thread_blocked, id=17176, stack(0x000000001b100000,0x000000001b200000)]
0x000000001aa1c000 JavaThread "Incoming local TCP Connector on port 51442" [_thread_in_native, id=2904, stack(0x000000001b000000,0x000000001b100000)]
0x0000000018a03000 JavaThread "Daemon health stats" [_thread_blocked, id=8896, stack(0x000000001ad00000,0x000000001ae00000)]
0x000000001885d800 JavaThread "Service Thread" daemon [_thread_blocked, id=2348, stack(0x0000000019330000,0x0000000019430000)]
0x00000000187cf800 JavaThread "C1 CompilerThread3" daemon [_thread_blocked, id=13248, stack(0x0000000019230000,0x0000000019330000)]
0x00000000187c8800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=2388, stack(0x0000000019130000,0x0000000019230000)]
0x00000000187c4000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=12928, stack(0x0000000019030000,0x0000000019130000)]
0x00000000187be000 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=15476, stack(0x0000000018f30000,0x0000000019030000)]
0x00000000187a7000 JavaThread "Attach Listener" daemon [_thread_blocked, id=17008, stack(0x0000000018e30000,0x0000000018f30000)]
0x00000000187a6000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=13340, stack(0x0000000018d30000,0x0000000018e30000)]
0x0000000002b88000 JavaThread "Finalizer" daemon [_thread_blocked, id=17084, stack(0x0000000018c30000,0x0000000018d30000)]
0x0000000018750800 JavaThread "Reference Handler" daemon [_thread_blocked, id=13628, stack(0x0000000018b30000,0x0000000018c30000)]
0x000000000256d800 JavaThread "main" [_thread_blocked, id=16408, stack(0x0000000002990000,0x0000000002a90000)]
Other Threads:
0x0000000016948800 VMThread [stack: 0x0000000018630000,0x0000000018730000] [id=10724]
0x000000001885f000 WatcherThread [stack: 0x0000000019430000,0x0000000019530000] [id=17204]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
heap address: 0x00000000a0000000, size: 1536 MB, Compressed Oops mode: 32-bit
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
Compressed class space size: 1073741824 Address: 0x0000000100000000
Heap:
PSYoungGen total 370688K, used 113446K [0x00000000e0000000, 0x00000000ff480000, 0x0000000100000000)
eden space 228864K, 29% used [0x00000000e0000000,0x00000000e41f2570,0x00000000edf80000)
from space 141824K, 32% used [0x00000000edf80000,0x00000000f0c57368,0x00000000f6a00000)
to space 132608K, 0% used [0x00000000f7300000,0x00000000f7300000,0x00000000ff480000)
ParOldGen total 594432K, used 405441K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 68% used [0x00000000a0000000,0x00000000b8bf0478,0x00000000c4480000)
Metaspace used 158408K, capacity 168072K, committed 168320K, reserved 1196032K
class space used 20103K, capacity 22360K, committed 22400K, reserved 1048576K
Card table byte_map: [0x0000000011f50000,0x0000000012260000] byte_map_base: 0x0000000011a50000
Marking Bits: (ParMarkBitMap*) 0x000000006317f030
Begin Bits: [0x0000000012c60000, 0x0000000014460000)
End Bits: [0x0000000014460000, 0x0000000015c60000)
Polling page: 0x00000000003f0000
CodeCache: size=245760Kb used=101809Kb max_used=101838Kb free=143950Kb
bounds [0x0000000002b90000, 0x0000000008f90000, 0x0000000011b90000]
total_blobs=27929 nmethods=26978 adapters=862
compilation: enabled
Compilation events (10 events):
Event: 192.343 Thread 0x00000000187cf800 nmethod 36619 0x0000000008f6bdd0 code [0x0000000008f6bf20, 0x0000000008f6c030]
Event: 192.343 Thread 0x00000000187cf800 36620 1 butterknife.compiler.ViewBinding::getMethodBindings (5 bytes)
Event: 192.343 Thread 0x00000000187cf800 nmethod 36620 0x0000000008f716d0 code [0x0000000008f71820, 0x0000000008f71930]
Event: 192.344 Thread 0x00000000187be000 36621 4 com.squareup.javapoet.CodeWriter::emit (781 bytes)
Event: 192.348 Thread 0x00000000187cf800 36622 1 com.squareup.javapoet.TypeSpec$Kind::access$1700 (5 bytes)
Event: 192.348 Thread 0x00000000187cf800 nmethod 36622 0x0000000008f71410 code [0x0000000008f71560, 0x0000000008f71650]
Event: 192.366 Thread 0x00000000187c8800 nmethod 36616 0x0000000008f7abd0 code [0x0000000008f7ade0, 0x0000000008f7bdb8]
Event: 192.387 Thread 0x00000000187c8800 36623 4 java.lang.invoke.InnerClassLambdaMetafactory::getOpcodeOffset (38 bytes)
Event: 192.388 Thread 0x00000000187c8800 nmethod 36623 0x0000000008f71110 code [0x0000000008f71260, 0x0000000008f71318]
Event: 192.421 Thread 0x00000000187c4000 nmethod 36583 0x0000000008f82950 code [0x0000000008f82d20, 0x0000000008f87170]
GC Heap History (10 events):
Event: 180.292 GC heap before
{Heap before GC invocations=68 (full 7):
PSYoungGen total 355840K, used 231531K [0x00000000e0000000, 0x00000000ff880000, 0x0000000100000000)
eden space 203264K, 100% used [0x00000000e0000000,0x00000000ec680000,0x00000000ec680000)
from space 152576K, 18% used [0x00000000f6380000,0x00000000f7f1aea0,0x00000000ff880000)
to space 156672K, 0% used [0x00000000ec680000,0x00000000ec680000,0x00000000f5f80000)
ParOldGen total 594432K, used 321085K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 54% used [0x00000000a0000000,0x00000000b398f720,0x00000000c4480000)
Metaspace used 145309K, capacity 154176K, committed 154368K, reserved 1183744K
class space used 18375K, capacity 20468K, committed 20480K, reserved 1048576K
Event: 180.320 GC heap after
Heap after GC invocations=68 (full 7):
PSYoungGen total 359936K, used 32018K [0x00000000e0000000, 0x00000000ffb00000, 0x0000000100000000)
eden space 203264K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000ec680000)
from space 156672K, 20% used [0x00000000ec680000,0x00000000ee5c4b40,0x00000000f5f80000)
to space 152064K, 0% used [0x00000000f6680000,0x00000000f6680000,0x00000000ffb00000)
ParOldGen total 594432K, used 348545K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 58% used [0x00000000a0000000,0x00000000b5460528,0x00000000c4480000)
Metaspace used 145309K, capacity 154176K, committed 154368K, reserved 1183744K
class space used 18375K, capacity 20468K, committed 20480K, reserved 1048576K
}
Event: 181.943 GC heap before
{Heap before GC invocations=69 (full 7):
PSYoungGen total 359936K, used 235282K [0x00000000e0000000, 0x00000000ffb00000, 0x0000000100000000)
eden space 203264K, 100% used [0x00000000e0000000,0x00000000ec680000,0x00000000ec680000)
from space 156672K, 20% used [0x00000000ec680000,0x00000000ee5c4b40,0x00000000f5f80000)
to space 152064K, 0% used [0x00000000f6680000,0x00000000f6680000,0x00000000ffb00000)
ParOldGen total 594432K, used 348545K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 58% used [0x00000000a0000000,0x00000000b5460528,0x00000000c4480000)
Metaspace used 145413K, capacity 154272K, committed 154496K, reserved 1183744K
class space used 18383K, capacity 20500K, committed 20608K, reserved 1048576K
Event: 181.991 GC heap after
Heap after GC invocations=69 (full 7):
PSYoungGen total 360960K, used 25449K [0x00000000e0000000, 0x00000000ff480000, 0x0000000100000000)
eden space 215552K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000ed280000)
from space 145408K, 17% used [0x00000000f6680000,0x00000000f7f5a640,0x00000000ff480000)
to space 148480K, 0% used [0x00000000ed280000,0x00000000ed280000,0x00000000f6380000)
ParOldGen total 594432K, used 379704K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 63% used [0x00000000a0000000,0x00000000b72ce120,0x00000000c4480000)
Metaspace used 145413K, capacity 154272K, committed 154496K, reserved 1183744K
class space used 18383K, capacity 20500K, committed 20608K, reserved 1048576K
}
Event: 184.559 GC heap before
{Heap before GC invocations=70 (full 7):
PSYoungGen total 360960K, used 241001K [0x00000000e0000000, 0x00000000ff480000, 0x0000000100000000)
eden space 215552K, 100% used [0x00000000e0000000,0x00000000ed280000,0x00000000ed280000)
from space 145408K, 17% used [0x00000000f6680000,0x00000000f7f5a640,0x00000000ff480000)
to space 148480K, 0% used [0x00000000ed280000,0x00000000ed280000,0x00000000f6380000)
ParOldGen total 594432K, used 379704K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 63% used [0x00000000a0000000,0x00000000b72ce120,0x00000000c4480000)
Metaspace used 145467K, capacity 154336K, committed 154496K, reserved 1183744K
class space used 18383K, capacity 20500K, committed 20608K, reserved 1048576K
Event: 184.583 GC heap after
Heap after GC invocations=70 (full 7):
PSYoungGen total 364032K, used 7909K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 215552K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000ed280000)
from space 148480K, 5% used [0x00000000ed280000,0x00000000eda39778,0x00000000f6380000)
to space 146944K, 0% used [0x00000000f7080000,0x00000000f7080000,0x0000000100000000)
ParOldGen total 594432K, used 399990K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 67% used [0x00000000a0000000,0x00000000b869d968,0x00000000c4480000)
Metaspace used 145467K, capacity 154336K, committed 154496K, reserved 1183744K
class space used 18383K, capacity 20500K, committed 20608K, reserved 1048576K
}
Event: 188.553 GC heap before
{Heap before GC invocations=71 (full 7):
PSYoungGen total 364032K, used 223461K [0x00000000e0000000, 0x0000000100000000, 0x0000000100000000)
eden space 215552K, 100% used [0x00000000e0000000,0x00000000ed280000,0x00000000ed280000)
from space 148480K, 5% used [0x00000000ed280000,0x00000000eda39778,0x00000000f6380000)
to space 146944K, 0% used [0x00000000f7080000,0x00000000f7080000,0x0000000100000000)
ParOldGen total 594432K, used 399990K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 67% used [0x00000000a0000000,0x00000000b869d968,0x00000000c4480000)
Metaspace used 145977K, capacity 154974K, committed 155264K, reserved 1183744K
class space used 18426K, capacity 20553K, committed 20608K, reserved 1048576K
Event: 188.580 GC heap after
Heap after GC invocations=71 (full 7):
PSYoungGen total 364032K, used 24190K [0x00000000e0000000, 0x00000000ff480000, 0x0000000100000000)
eden space 228864K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000edf80000)
from space 135168K, 17% used [0x00000000f7080000,0x00000000f881f830,0x00000000ff480000)
to space 141824K, 0% used [0x00000000edf80000,0x00000000edf80000,0x00000000f6a00000)
ParOldGen total 594432K, used 405433K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 68% used [0x00000000a0000000,0x00000000b8bee478,0x00000000c4480000)
Metaspace used 145977K, capacity 154974K, committed 155264K, reserved 1183744K
class space used 18426K, capacity 20553K, committed 20608K, reserved 1048576K
}
Event: 191.898 GC heap before
{Heap before GC invocations=72 (full 7):
PSYoungGen total 364032K, used 253054K [0x00000000e0000000, 0x00000000ff480000, 0x0000000100000000)
eden space 228864K, 100% used [0x00000000e0000000,0x00000000edf80000,0x00000000edf80000)
from space 135168K, 17% used [0x00000000f7080000,0x00000000f881f830,0x00000000ff480000)
to space 141824K, 0% used [0x00000000edf80000,0x00000000edf80000,0x00000000f6a00000)
ParOldGen total 594432K, used 405433K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 68% used [0x00000000a0000000,0x00000000b8bee478,0x00000000c4480000)
Metaspace used 156904K, capacity 166540K, committed 166656K, reserved 1193984K
class space used 19936K, capacity 22196K, committed 22272K, reserved 1048576K
Event: 191.943 GC heap after
Heap after GC invocations=72 (full 7):
PSYoungGen total 370688K, used 45916K [0x00000000e0000000, 0x00000000ff480000, 0x0000000100000000)
eden space 228864K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000edf80000)
from space 141824K, 32% used [0x00000000edf80000,0x00000000f0c57368,0x00000000f6a00000)
to space 132608K, 0% used [0x00000000f7300000,0x00000000f7300000,0x00000000ff480000)
ParOldGen total 594432K, used 405441K [0x00000000a0000000, 0x00000000c4480000, 0x00000000e0000000)
object space 594432K, 68% used [0x00000000a0000000,0x00000000b8bf0478,0x00000000c4480000)
Metaspace used 156904K, capacity 166540K, committed 166656K, reserved 1193984K
class space used 19936K, capacity 22196K, committed 22272K, reserved 1048576K
}
Deoptimization events (10 events):
Event: 190.762 Thread 0x0000000021a72000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00000000080c3168 method=com.google.common.collect.RegularImmutableMap.get(Ljava/lang/Object;[Lcom/google/common/collect/ImmutableMapEntry;I)Ljava/lang/Object; @ 5
Event: 191.235 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d36b98 method=java.util.HashMap.computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; @ 142
Event: 191.438 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d36b98 method=java.util.HashMap.computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; @ 142
Event: 191.554 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d36b98 method=java.util.HashMap.computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; @ 142
Event: 191.688 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000003d36b98 method=java.util.HashMap.computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object; @ 142
Event: 191.817 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000008d0fe48 method=org.openjdk.tools.javac.parser.Scanner.token(I)Lorg/openjdk/tools/javac/parser/Tokens$Token; @ 26
Event: 191.844 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000008d0fe48 method=org.openjdk.tools.javac.parser.Scanner.token(I)Lorg/openjdk/tools/javac/parser/Tokens$Token; @ 26
Event: 191.880 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000008d0fe48 method=org.openjdk.tools.javac.parser.Scanner.token(I)Lorg/openjdk/tools/javac/parser/Tokens$Token; @ 26
Event: 191.950 Thread 0x0000000021a72000 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000008d0fe48 method=org.openjdk.tools.javac.parser.Scanner.token(I)Lorg/openjdk/tools/javac/parser/Tokens$Token; @ 26
Event: 192.334 Thread 0x0000000021a72000 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000000008df4720 method=com.squareup.javapoet.CodeWriter.emitAndIndent(Ljava/lang/String;)Lcom/squareup/javapoet/CodeWriter; @ 172
Classes redefined (0 events):
No events
Internal exceptions (10 events):
Event: 181.623 Thread 0x0000000019889000 Implicit null exception at 0x0000000007d51322 to 0x0000000007d516bd
Event: 183.180 Thread 0x0000000019889000 Implicit null exception at 0x0000000005e8ab91 to 0x0000000005e8aca1
Event: 183.219 Thread 0x0000000019889000 Implicit null exception at 0x0000000005da2595 to 0x0000000005da26d9
Event: 184.608 Thread 0x0000000019889000 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e01aef20) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\prims\jni.cpp, line 710]
Event: 185.302 Thread 0x0000000019887000 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e345b6f8) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\prims\jni.cpp, line 710]
Event: 185.525 Thread 0x0000000021a6d800 Exception <a 'sun/nio/fs/WindowsException'> (0x00000000e3ffebd0) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\prims\jni.cpp, line 710]
Event: 188.456 Thread 0x000000002509d800 Exception <a 'java/lang/InterruptedException'> (0x00000000ec5a63e8) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\runtime\objectMonitor.cpp, line 1680]
Event: 188.966 Thread 0x0000000021a72000 Exception <a 'java/lang/IncompatibleClassChangeError': Found class java.lang.Object, but interface was expected> (0x00000000e55cfef0) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\interpreter\linkResolver.cpp, line 653]
Event: 190.762 Thread 0x0000000021a72000 Implicit null exception at 0x00000000080c2fdc to 0x00000000080c315d
Event: 191.098 Thread 0x0000000021a72000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.of(Ljava/lang/Object;)Ljava/util/stream/Stream;> (0x00000000eaf604a0) thrown at [C:\src\AOSP-openjdk-git\hotspot\src\share\vm\interpreter\linkResolver.cpp, line 620]
Events (10 events):
Event: 192.548 loading class android/databinding/tool/store/SetterStore$BindingGetterCall
Event: 192.548 loading class android/databinding/tool/store/SetterStore$BindingGetterCall done
Event: 192.549 loading class android/databinding/tool/store/SetterStore$BindingSetterCall
Event: 192.549 loading class android/databinding/tool/store/SetterStore$BindingSetterCall done
Event: 192.549 loading class android/databinding/tool/store/SetterStore$SetterCall
Event: 192.549 loading class android/databinding/tool/store/SetterStore$SetterCall done
Event: 192.549 loading class android/databinding/tool/store/SetterStore$ModelMethodSetter
Event: 192.549 loading class android/databinding/tool/store/SetterStore$ModelMethodSetter done
Event: 192.551 loading class android/databinding/tool/store/SetterStore$AdapterSetter
Event: 192.551 loading class android/databinding/tool/store/SetterStore$AdapterSetter done
Dynamic libraries:
0x00007ff6d9d40000 - 0x00007ff6d9d71000 D:\Android\AndroidStudio\jre\bin\java.exe
0x00007ffa2be00000 - 0x00007ffa2bff0000 C:\Windows\SYSTEM32\ntdll.dll
0x00007ffa2b800000 - 0x00007ffa2b8b2000 C:\Windows\System32\KERNEL32.DLL
0x00007ffa29960000 - 0x00007ffa29c05000 C:\Windows\System32\KERNELBASE.dll
0x00007ffa2ab10000 - 0x00007ffa2abb3000 C:\Windows\System32\ADVAPI32.dll
0x00007ffa2ba60000 - 0x00007ffa2bafe000 C:\Windows\System32\msvcrt.dll
0x00007ffa2af00000 - 0x00007ffa2af97000 C:\Windows\System32\sechost.dll
0x00007ffa2bca0000 - 0x00007ffa2bdbf000 C:\Windows\System32\RPCRT4.dll
0x00007ffa2ad60000 - 0x00007ffa2aef4000 C:\Windows\System32\USER32.dll
0x00007ffa29090000 - 0x00007ffa290b1000 C:\Windows\System32\win32u.dll
0x00007ffa2abc0000 - 0x00007ffa2abe6000 C:\Windows\System32\GDI32.dll
0x00007ffa29c10000 - 0x00007ffa29da8000 C:\Windows\System32\gdi32full.dll
0x00007ffa28d80000 - 0x00007ffa28e1e000 C:\Windows\System32\msvcp_win.dll
0x00007ffa29db0000 - 0x00007ffa29eaa000 C:\Windows\System32\ucrtbase.dll
0x00007ffa0f330000 - 0x00007ffa0f5b4000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.1316_none_9e7a364fe461dbd7\COMCTL32.dll
0x00007ffa29ed0000 - 0x00007ffa2a207000 C:\Windows\System32\combase.dll
0x00007ffa28e20000 - 0x00007ffa28ea1000 C:\Windows\System32\bcryptPrimitives.dll
0x00007ffa2ac80000 - 0x00007ffa2acae000 C:\Windows\System32\IMM32.DLL
0x00000000627f0000 - 0x00000000628c2000 D:\Android\AndroidStudio\jre\jre\bin\msvcr100.dll
0x00000000629b0000 - 0x00000000631fb000 D:\Android\AndroidStudio\jre\jre\bin\server\jvm.dll
0x00007ffa2b630000 - 0x00007ffa2b638000 C:\Windows\System32\PSAPI.DLL
0x00007ffa12040000 - 0x00007ffa12049000 C:\Windows\SYSTEM32\WSOCK32.dll
0x00007ffa25690000 - 0x00007ffa256b4000 C:\Windows\SYSTEM32\WINMM.dll
0x00007ffa1a850000 - 0x00007ffa1a85a000 C:\Windows\SYSTEM32\VERSION.dll
0x00007ffa2afa0000 - 0x00007ffa2b00f000 C:\Windows\System32\WS2_32.dll
0x00007ffa25660000 - 0x00007ffa2568d000 C:\Windows\SYSTEM32\WINMMBASE.dll
0x00007ffa290c0000 - 0x00007ffa2910a000 C:\Windows\System32\cfgmgr32.dll
0x00007ffa254b0000 - 0x00007ffa254bf000 D:\Android\AndroidStudio\jre\jre\bin\verify.dll
0x00007ffa05360000 - 0x00007ffa05389000 D:\Android\AndroidStudio\jre\jre\bin\java.dll
0x00007ffa05340000 - 0x00007ffa05356000 D:\Android\AndroidStudio\jre\jre\bin\zip.dll
0x00007ffa2a210000 - 0x00007ffa2a8f8000 C:\Windows\System32\SHELL32.dll
0x00007ffa2acb0000 - 0x00007ffa2ad57000 C:\Windows\System32\shcore.dll
0x00007ffa291e0000 - 0x00007ffa2995b000 C:\Windows\System32\windows.storage.dll
0x00007ffa28cc0000 - 0x00007ffa28ce3000 C:\Windows\System32\profapi.dll
0x00007ffa28d10000 - 0x00007ffa28d5a000 C:\Windows\System32\powrprof.dll
0x00007ffa28cb0000 - 0x00007ffa28cc0000 C:\Windows\System32\UMPDC.dll
0x00007ffa2bc40000 - 0x00007ffa2bc92000 C:\Windows\System32\shlwapi.dll
0x00007ffa28cf0000 - 0x00007ffa28d01000 C:\Windows\System32\kernel.appcore.dll
0x00007ffa29110000 - 0x00007ffa29127000 C:\Windows\System32\cryptsp.dll
0x00007ff9ed5c0000 - 0x00007ff9ed5da000 D:\Android\AndroidStudio\jre\jre\bin\net.dll
0x00007ffa284b0000 - 0x00007ffa28517000 C:\Windows\system32\mswsock.dll
0x00007ff9ed520000 - 0x00007ff9ed533000 D:\Android\AndroidStudio\jre\jre\bin\nio.dll
0x00007ff9ee560000 - 0x00007ff9ee586000 D:\gradle\native\29\windows-amd64\native-platform.dll
0x00007ffa05330000 - 0x00007ffa0533d000 D:\Android\AndroidStudio\jre\jre\bin\management.dll
0x00007ffa28030000 - 0x00007ffa28063000 C:\Windows\system32\rsaenh.dll
0x00007ffa29000000 - 0x00007ffa29026000 C:\Windows\System32\bcrypt.dll
0x00007ffa28b90000 - 0x00007ffa28bb5000 C:\Windows\SYSTEM32\USERENV.dll
0x00007ffa28650000 - 0x00007ffa2865c000 C:\Windows\SYSTEM32\CRYPTBASE.dll
0x00007ffa281c0000 - 0x00007ffa281fa000 C:\Windows\SYSTEM32\IPHLPAPI.DLL
0x00007ffa2bbd0000 - 0x00007ffa2bbd8000 C:\Windows\System32\NSI.dll
0x00007ffa20ff0000 - 0x00007ffa21006000 C:\Windows\SYSTEM32\dhcpcsvc6.DLL
0x00007ffa20fd0000 - 0x00007ffa20fec000 C:\Windows\SYSTEM32\dhcpcsvc.DLL
0x00007ffa28210000 - 0x00007ffa282db000 C:\Windows\SYSTEM32\DNSAPI.dll
0x00007ff9dded0000 - 0x00007ff9ddef4000 D:\Android\AndroidStudio\jre\jre\bin\sunec.dll
0x00007ffa1aaa0000 - 0x00007ffa1aaaa000 C:\Windows\System32\rasadhlp.dll
0x00007ffa20870000 - 0x00007ffa208e7000 C:\Windows\System32\fwpuclnt.dll
0x00007ffa220c0000 - 0x00007ffa220cb000 D:\Android\AndroidStudio\jre\jre\bin\sunmscapi.dll
0x00007ffa28eb0000 - 0x00007ffa28ffa000 C:\Windows\System32\CRYPT32.dll
0x00007ffa28d60000 - 0x00007ffa28d72000 C:\Windows\System32\MSASN1.dll
0x00007ffa08ee0000 - 0x00007ffa08efe000 C:\Users\86186\AppData\Local\Temp\native-platform7933315474808345177dir\native-platform.dll
0x00007ffa27560000 - 0x00007ffa27754000 C:\Windows\SYSTEM32\dbghelp.dll
VM Arguments:
jvm_args: -Xmx1536m -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant
java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 5.4.1
java_class_path (initial): D:\gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1\lib\gradle-launcher-5.4.1.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=D:\Android\AndroidStudio\jre
CLASSPATH=.;D:\Android\AndroidStudio\jre/lib/tools.jar;D:\Android\AndroidStudio\jre/lib/dt.jar
PATH=D:\Android\AndroidStudio\jre/bin;D:\Android\AndroidStudio\jre/jre/bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\Android\AndroidSDK\platform-tools;D:\Git\cmd;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\86186\AppData\Local\Microsoft\WindowsApps;
USERNAME=86186
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 126 Stepping 5, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 10.0 , 64 bit Build 18362 (10.0.18362.1316)
CPU:total 8 (initial active 8) (4 cores per cpu, 2 threads per core) family 6 model 126 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx
Memory: 4k page, physical 8084284k(302728k free), swap 20142908k(7688044k free)
vm_info: OpenJDK 64-Bit Server VM (25.242-b01) for windows-amd64 JRE (1.8.0_242-release-1644-b01), built by "builder" with MS VC++ 10.0 (VS2010)
time: Tue Jan 26 16:43:18 2021
timezone: й׼ʱ
elapsed time: 192 seconds (0d 0h 3m 12s)
...@@ -34,6 +34,7 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable; ...@@ -34,6 +34,7 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable;
import com.jess.arms.mvp.IPresenter; import com.jess.arms.mvp.IPresenter;
import com.jess.arms.utils.AndroidWorkaround; import com.jess.arms.utils.AndroidWorkaround;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.arch.QMUIActivity;
import com.qmuiteam.qmui.util.QMUIDeviceHelper; import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.trello.rxlifecycle2.android.ActivityEvent; import com.trello.rxlifecycle2.android.ActivityEvent;
...@@ -57,7 +58,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView; ...@@ -57,7 +58,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView;
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================ * ================================================
*/ */
public abstract class BaseActivity<P extends IPresenter> extends AppCompatActivity implements IActivity, ActivityLifecycleable { public abstract class BaseActivity<P extends IPresenter> extends QMUIActivity implements IActivity, ActivityLifecycleable {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create(); private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache; private Cache<String, Object> mCache;
......
...@@ -30,13 +30,18 @@ import com.jess.arms.integration.lifecycle.FragmentLifecycleable; ...@@ -30,13 +30,18 @@ import com.jess.arms.integration.lifecycle.FragmentLifecycleable;
import com.jess.arms.mvp.IPresenter; import com.jess.arms.mvp.IPresenter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.arch.QMUIFragment; import com.qmuiteam.qmui.arch.QMUIFragment;
import com.qmuiteam.qmui.arch.QMUIFragmentLazyLifecycleOwner;
import com.trello.rxlifecycle2.android.FragmentEvent; import com.trello.rxlifecycle2.android.FragmentEvent;
import java.util.Observable; import java.util.Observable;
import javax.inject.Inject; import javax.inject.Inject;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.subjects.BehaviorSubject; import io.reactivex.subjects.BehaviorSubject;
import io.reactivex.subjects.Subject; import io.reactivex.subjects.Subject;
...@@ -56,7 +61,7 @@ import me.yokeyword.fragmentation.anim.FragmentAnimator; ...@@ -56,7 +61,7 @@ import me.yokeyword.fragmentation.anim.FragmentAnimator;
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================ * ================================================
*/ */
public abstract class BaseFragment<P extends IPresenter> extends Fragment implements IFragment, ISupportFragment, FragmentLifecycleable { public abstract class BaseFragment<P extends IPresenter> extends QMUIFragment implements IFragment, ISupportFragment, FragmentLifecycleable {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<FragmentEvent> mLifecycleSubject = BehaviorSubject.create(); private final BehaviorSubject<FragmentEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache; private Cache<String, Object> mCache;
...@@ -87,8 +92,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -87,8 +92,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return mLifecycleSubject; return mLifecycleSubject;
} }
private View view;
@Override @Override
public SupportFragmentDelegate getSupportDelegate() { public SupportFragmentDelegate getSupportDelegate() {
return mDelegate; return mDelegate;
...@@ -117,7 +120,7 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -117,7 +120,7 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
Activity activity = (Activity) context; Activity activity = (Activity) context;
mDelegate.onAttach(activity); mDelegate.onAttach(activity);
_mActivity = (BaseFragmentActivity) mDelegate.getActivity(); _mActivity = (BaseFragmentActivity) mDelegate.getActivity();
mContext = mDelegate.getActivity(); mContext = mDelegate.getActivity();
} }
@Override @Override
...@@ -137,24 +140,30 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -137,24 +140,30 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
mDelegate.onActivityCreated(savedInstanceState); mDelegate.onActivityCreated(savedInstanceState);
} }
@Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { protected View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container) {
if (view != null) { mCacheRootView = initView(inflater, container, null);
ViewGroup viewGroup = (ViewGroup) view.getRootView(); return mCacheRootView;
if (viewGroup != null) {
viewGroup.removeView(view);
}
return view;
}
view = initView(inflater, container, savedInstanceState);
return view;
} }
// @Nullable
// @Override
// public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// if (view != null) {
// ViewGroup viewGroup = (ViewGroup) view.getRootView();
// if (viewGroup != null) {
// viewGroup.removeView(view);
// }
// return view;
// }
// view = initView(inflater, container, savedInstanceState);
// return view;
// }
@Nullable @Nullable
@Override @Override
public View getView() { public View getView() {
return view; return mCacheRootView;
} }
/** /**
......
...@@ -34,6 +34,8 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable; ...@@ -34,6 +34,8 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable;
import com.jess.arms.mvp.IPresenter; import com.jess.arms.mvp.IPresenter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.arch.QMUIActivity;
import com.qmuiteam.qmui.arch.QMUIFragmentActivity;
import com.qmuiteam.qmui.util.QMUIDeviceHelper; import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.trello.rxlifecycle2.android.ActivityEvent; import com.trello.rxlifecycle2.android.ActivityEvent;
...@@ -62,7 +64,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView; ...@@ -62,7 +64,7 @@ import static com.jess.arms.utils.ThirdViewUtil.convertAutoView;
* <a href="https://github.com/JessYanCoding">Follow me</a> * <a href="https://github.com/JessYanCoding">Follow me</a>
* ================================================ * ================================================
*/ */
public abstract class BaseFragmentActivity<P extends IPresenter> extends FragmentActivity implements IActivity, ISupportActivity, ActivityLifecycleable { public abstract class BaseFragmentActivity<P extends IPresenter> extends QMUIActivity implements IActivity, ISupportActivity, ActivityLifecycleable {
protected final String TAG = this.getClass().getSimpleName(); protected final String TAG = this.getClass().getSimpleName();
private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create(); private final BehaviorSubject<ActivityEvent> mLifecycleSubject = BehaviorSubject.create();
private Cache<String, Object> mCache; private Cache<String, Object> mCache;
...@@ -95,6 +97,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen ...@@ -95,6 +97,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen
return view == null ? super.onCreateView(name, context, attrs) : view; return view == null ? super.onCreateView(name, context, attrs) : view;
} }
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -179,6 +182,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen ...@@ -179,6 +182,7 @@ public abstract class BaseFragmentActivity<P extends IPresenter> extends Fragmen
*/ */
@Override @Override
final public void onBackPressed() { final public void onBackPressed() {
super.onBackPressed();
mDelegate.onBackPressed(); mDelegate.onBackPressed();
} }
......
...@@ -63,6 +63,7 @@ import com.hyweb.n5.lib.exception.NoInitPrinterException; ...@@ -63,6 +63,7 @@ import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.base.BaseApplication; import com.jess.arms.base.BaseApplication;
import com.kingja.loadsir.core.LoadSir; import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter; import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader; import com.scwang.smartrefresh.layout.header.ClassicsHeader;
...@@ -137,10 +138,8 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -137,10 +138,8 @@ public class GsaCloudApplication extends BaseApplication {
initHywebCommandImpl(); initHywebCommandImpl();
//初始化服務器地址 //初始化服務器地址
initDomainUrl(); initDomainUrl();
//初始化側滑回退 //初始化QMUI相关
// QMUISwipeBackActivityManager.init(this); initQMUI();
//初始化主題管理器
// QDSkinManager.install(this);
//初始化哆啦A夢 //初始化哆啦A夢
// initDoraemonKit(); // initDoraemonKit();
//初始化上下拉刷新 //初始化上下拉刷新
...@@ -169,6 +168,13 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -169,6 +168,13 @@ public class GsaCloudApplication extends BaseApplication {
LoganManager.w_action(TAG, TAG + ": onCreate end....."); LoganManager.w_action(TAG, TAG + ": onCreate end.....");
} }
private void initQMUI() {
//初始化側滑回退
QMUISwipeBackActivityManager.init(this);
//初始化主題管理器
// QDSkinManager.install(this);
}
/** /**
* 初始化美團日誌框架 * 初始化美團日誌框架
*/ */
...@@ -337,29 +343,32 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -337,29 +343,32 @@ public class GsaCloudApplication extends BaseApplication {
PrintPaperPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() { PrintPaperPlugins.setOnPrinterFlowHandler(new PrinterFlowListener() {
@Override @Override
public void onPrinterDataBefore(String printerData, String printerDeviceInfo) { public void onPrinterDataBefore(int orderType, String printerData, String printerDeviceInfo) {
LoganManager.w_code(TAG, "onPrinterDataBefore printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo); LoganManager.w_code(TAG, "onPrinterDataBefore printerData=" + printerData + " printerDeviceInfo=" + printerDeviceInfo);
} }
@Override @Override
public void onPrinterBitmapBefore(String directoryName, List<Map<String, Bitmap>> bitmaps) { public void onPrinterBitmapBefore(int orderType, String directoryName, List<Map<String, Bitmap>> bitmaps) {
LoganManager.w_code(TAG, "onPrinterBitmapBefore"); LoganManager.w_code(TAG, "onPrinterBitmapBefore");
RxIOTask rxIOTask = new RxIOTask(0) { RxIOTask rxIOTask = new RxIOTask(0) {
@Override @Override
public Object doInIOThread(Object o) { public Object doInIOThread(Object o) {
long FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH); File file = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
if (FILE_SIZE > FileUtils.PrinterImagePath.PRINTER_MAX_FILE_SIZE) { if (file != null && file.exists()) {
//大於100M 就刪除 long FILE_SIZE = FileUtils.getDirSize(file);
File prjPath = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH); if (FILE_SIZE > FileUtils.PrinterImagePath.PRINTER_MAX_FILE_SIZE) {
if (prjPath.isDirectory()) { //大於100M 就刪除
File[] prjDirectorys = prjPath.listFiles(); File prjPath = new File(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
for (int i = prjDirectorys.length - 1; i >= 0; i--) { if (prjPath.isDirectory()) {
File prjDirectory = prjDirectorys[i]; File[] prjDirectorys = prjPath.listFiles();
boolean deleteResult = prjDirectory.delete(); for (int i = prjDirectorys.length - 1; i >= 0; i--) {
if (deleteResult && FILE_SIZE <= FileUtils.PrinterImagePath.PRINTER_KEEP_FILE_SIZE) { File prjDirectory = prjDirectorys[i];
FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH); boolean deleteResult = prjDirectory.delete();
LoganManager.w_code(TAG, "onPrinterBitmapBefore delete kitchen prj file after size :" + FILE_SIZE); if (deleteResult && FILE_SIZE <= FileUtils.PrinterImagePath.PRINTER_KEEP_FILE_SIZE) {
break; FILE_SIZE = FileUtils.getFileSize(FileUtils.PrinterImagePath.KITCHEN_PRJ_IMAGE_PATH);
LoganManager.w_code(TAG, "onPrinterBitmapBefore delete kitchen prj file after size :" + FILE_SIZE);
break;
}
} }
} }
} }
......
...@@ -3,4 +3,6 @@ package com.gingersoft.gsa.cloud.common.constans; ...@@ -3,4 +3,6 @@ package com.gingersoft.gsa.cloud.common.constans;
public class DeliveryPickConstans { public class DeliveryPickConstans {
public static final String ORDER_TYPE = "orderType"; public static final String ORDER_TYPE = "orderType";
} }
...@@ -11,7 +11,7 @@ public interface OrderTypeConstans { ...@@ -11,7 +11,7 @@ public interface OrderTypeConstans {
*/ */
int order_type_2 = 2; int order_type_2 = 2;
/** /**
* 掃碼點餐 * skyorder
*/ */
int order_type_3 = 3; int order_type_3 = 3;
/** /**
......
...@@ -14,9 +14,9 @@ import java.util.Map; ...@@ -14,9 +14,9 @@ import java.util.Map;
*/ */
public interface PrinterFlowListener extends ExternalPrinterConnection { public interface PrinterFlowListener extends ExternalPrinterConnection {
void onPrinterDataBefore(String printerData,String printerDeviceInfo); void onPrinterDataBefore(int orderType,String printerData,String printerDeviceInfo);
void onPrinterBitmapBefore(String directoryName, List<Map<String, Bitmap>> bitmaps); void onPrinterBitmapBefore(int orderType,String directoryName, List<Map<String, Bitmap>> bitmaps);
void onPrintSuccess(PrinterDeviceBean printerDeviceBean); void onPrintSuccess(PrinterDeviceBean printerDeviceBean);
......
...@@ -78,10 +78,10 @@ public class FileUtils { ...@@ -78,10 +78,10 @@ public class FileUtils {
public static String BillImage = "BillImage"; public static String BillImage = "BillImage";
public static String ServingPaperImage = "ServingPaperImage"; public static String ServingPaperImage = "ServingPaperImage";
public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator; public final static String ROOT_PATH = ALBUM_PATH + PrinterImagesRootPath + File.separator;
public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage; public final static String KITCHEN_PRJ_IMAGE_PATH = ROOT_PATH + KitchenImage + File.separator;
public final static String ORDER_IMAGE_PATH = ROOT_PATH + OrderImage; public final static String ORDER_IMAGE_PATH = ROOT_PATH + OrderImage + File.separator;
public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage; public final static String BILL_IMAGE_PATH = ROOT_PATH + BillImage + File.separator;
public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage; public final static String SERVING_PAPER_IMAGE_PATH = ROOT_PATH + ServingPaperImage + File.separator;
} }
public final static String FILE_EXTENSION_SEPARATOR = "."; public final static String FILE_EXTENSION_SEPARATOR = ".";
...@@ -284,6 +284,28 @@ public class FileUtils { ...@@ -284,6 +284,28 @@ public class FileUtils {
return size; return size;
} }
/**
* 获取目录文件大小
*/
public static long getDirSize(File dir) {
if (dir == null) {
return 0;
}
if (!dir.isDirectory()) {
return 0;
}
long dirSize = 0;
File[] files = dir.listFiles();
for (File file : files) {
if (file.isFile()) {
dirSize += file.length();
} else if (file.isDirectory()) {
dirSize += getDirSize(file); // 递归调用继续统计
}
}
return dirSize;
}
/* /*
* Java文件操作 获取文件扩展名 * Java文件操作 获取文件扩展名
* */ * */
......
...@@ -40,7 +40,7 @@ public class OrderDiscountRequest { ...@@ -40,7 +40,7 @@ public class OrderDiscountRequest {
/** /**
* 折扣金額 * 折扣金額
*/ */
private double discountAmount; private Double discountAmount;
/** /**
* 是否计算服务费 * 是否计算服务费
*/ */
......
...@@ -26,7 +26,7 @@ public class OrderDiscountResponse implements Serializable { ...@@ -26,7 +26,7 @@ public class OrderDiscountResponse implements Serializable {
* 1#會員折扣 * 1#會員折扣
* 2#优惠券折扣 * 2#优惠券折扣
*/ */
private int type; private byte type;
/** /**
* 餐廳折扣類型 0:金額,1:折扣,2:自定義金額,3:自由金額,數字盤,4:免服務費 * 餐廳折扣類型 0:金額,1:折扣,2:自定義金額,3:自由金額,數字盤,4:免服務費
*/ */
......
...@@ -138,7 +138,7 @@ public class OrderResponse { ...@@ -138,7 +138,7 @@ public class OrderResponse {
/** /**
* 成本價 * 成本價
*/ */
private double cost; private Double cost;
/** /**
* 自定義字段 * 自定義字段
......
...@@ -64,13 +64,12 @@ public class PrjBean { ...@@ -64,13 +64,12 @@ public class PrjBean {
private String takeFoodCode; //取餐碼 private String takeFoodCode; //取餐碼
private String billNo;//訂單碼 private String billNo;//訂單碼
/** /**
* 訂單類型 * 訂單類型{@link com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans}
* 1:堂食 */
* 2: private int orderType;
* 3:skyorder /**
* 7:自取 * 服務員名稱
*/ */
private int orderType;//訂單類型
private String userName; private String userName;
/*** /***
* 層級 * 層級
......
...@@ -179,15 +179,16 @@ public class QMUIActivity extends InnerBaseActivity { ...@@ -179,15 +179,16 @@ public class QMUIActivity extends InnerBaseActivity {
* final this method, if need override this method, use doOnBackPressed as an alternative * final this method, if need override this method, use doOnBackPressed as an alternative
*/ */
@Override @Override
public final void onBackPressed() { // public final void onBackPressed() {
public void onBackPressed() {
if (!mIsInSwipeBack) { if (!mIsInSwipeBack) {
doOnBackPressed(); super.onBackPressed();
} }
} }
protected void doOnBackPressed() { // protected void doOnBackPressed() {
super.onBackPressed(); // super.onBackPressed();
} // }
public boolean isInSwipeBack() { public boolean isInSwipeBack() {
return mIsInSwipeBack; return mIsInSwipeBack;
......
...@@ -105,7 +105,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -105,7 +105,7 @@ public abstract class QMUIFragment extends Fragment implements
private View mBaseView; private View mBaseView;
private SwipeBackLayout mCacheSwipeBackLayout; private SwipeBackLayout mCacheSwipeBackLayout;
private View mCacheRootView; protected View mCacheRootView;
private boolean isCreateForSwipeBack = false; private boolean isCreateForSwipeBack = false;
private int mBackStackIndex = 0; private int mBackStackIndex = 0;
private SwipeBackLayout.ListenerRemover mListenerRemover; private SwipeBackLayout.ListenerRemover mListenerRemover;
...@@ -288,26 +288,26 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -288,26 +288,26 @@ public abstract class QMUIFragment extends Fragment implements
} }
public void setFragmentResult(int resultCode, Intent data) { // public void setFragmentResult(int resultCode, Intent data) {
int targetRequestCode = getTargetRequestCode(); // int targetRequestCode = getTargetRequestCode();
if (targetRequestCode == 0) { // if (targetRequestCode == 0) {
QMUILog.w(TAG, "call setFragmentResult, but not requestCode exists"); // QMUILog.w(TAG, "call setFragmentResult, but not requestCode exists");
return; // return;
} // }
Fragment fragment = getTargetFragment(); // Fragment fragment = getTargetFragment();
if (!(fragment instanceof QMUIFragment)) { // if (!(fragment instanceof QMUIFragment)) {
return; // return;
} // }
QMUIFragment targetFragment = (QMUIFragment) fragment; // QMUIFragment targetFragment = (QMUIFragment) fragment;
//
if (targetFragment.mSourceRequestCode == targetRequestCode) { // if (targetFragment.mSourceRequestCode == targetRequestCode) {
if (targetFragment.mChildTargetFragment != null) { // if (targetFragment.mChildTargetFragment != null) {
targetFragment = targetFragment.mChildTargetFragment; // targetFragment = targetFragment.mChildTargetFragment;
} // }
targetFragment.mResultCode = resultCode; // targetFragment.mResultCode = resultCode;
targetFragment.mResultData = data; // targetFragment.mResultData = data;
} // }
} // }
@Override @Override
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -357,10 +357,10 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -357,10 +357,10 @@ public abstract class QMUIFragment extends Fragment implements
} }
} }
private SwipeBackLayout newSwipeBackLayout() { private SwipeBackLayout newSwipeBackLayout(@NonNull LayoutInflater inflater, ViewGroup container) {
View rootView = mCacheRootView; View rootView = mCacheRootView;
if (rootView == null) { if (rootView == null) {
rootView = onCreateView(); rootView = onCreateView(inflater,container);
mCacheRootView = rootView; mCacheRootView = rootView;
} else { } else {
if (rootView.getParent() != null) { if (rootView.getParent() != null) {
...@@ -721,7 +721,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -721,7 +721,7 @@ public abstract class QMUIFragment extends Fragment implements
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
SwipeBackLayout swipeBackLayout; SwipeBackLayout swipeBackLayout;
if (mCacheSwipeBackLayout == null) { if (mCacheSwipeBackLayout == null) {
swipeBackLayout = newSwipeBackLayout(); swipeBackLayout = newSwipeBackLayout(inflater,container);
mCacheSwipeBackLayout = swipeBackLayout; mCacheSwipeBackLayout = swipeBackLayout;
} else { } else {
if (canNotUseCacheViewInCreateView()) { if (canNotUseCacheViewInCreateView()) {
...@@ -734,7 +734,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -734,7 +734,7 @@ public abstract class QMUIFragment extends Fragment implements
Log.i(TAG, "can not use cache swipeBackLayout, this may happen " + Log.i(TAG, "can not use cache swipeBackLayout, this may happen " +
"if invoke popBackStack duration fragment transition"); "if invoke popBackStack duration fragment transition");
mCacheSwipeBackLayout.clearSwipeListeners(); mCacheSwipeBackLayout.clearSwipeListeners();
swipeBackLayout = newSwipeBackLayout(); swipeBackLayout = newSwipeBackLayout(inflater,container);
mCacheSwipeBackLayout = swipeBackLayout; mCacheSwipeBackLayout = swipeBackLayout;
} else { } else {
swipeBackLayout = mCacheSwipeBackLayout; swipeBackLayout = mCacheSwipeBackLayout;
...@@ -915,7 +915,7 @@ public abstract class QMUIFragment extends Fragment implements ...@@ -915,7 +915,7 @@ public abstract class QMUIFragment extends Fragment implements
/** /**
* onCreateView * onCreateView
*/ */
protected abstract View onCreateView(); protected abstract View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container);
/** /**
......
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="取餐碼:" android:text="取餐碼:"
android:textSize="@dimen/dp_20" android:textSize="@dimen/dp_20"
android:visibility="gone" /> android:visibility="visible" />
<TextView <TextView
android:id="@+id/tv_take_code" android:id="@+id/tv_take_code"
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="@dimen/dp_20" android:textSize="@dimen/dp_20"
android:visibility="gone" /> android:visibility="visible" />
</LinearLayout> </LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--廚房單-->
<!-- 頭單-->
<TextView
android:id="@+id/tv_kitchen_print_first_order"
style="@style/Print_kitchen_table_number_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="頭單"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- 台號-->
<TextView
android:id="@+id/tv_kitchen_print_table_number"
style="@style/Print_kitchen_table_number_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="外賣19"
android:textStyle="bold"
android:textSize="@dimen/sp_42"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_kitchen_print_first_order" />
<!--預留-->
<TextView
android:id="@+id/tv_order_reserved"
style="@style/Print_kitchen_table_number_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="預存"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_kitchen_print_first_order" />
<TextView
android:id="@+id/tv_food_time"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_18"
android:visibility="visible"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_kitchen_print_table_number"
tools:text="盡快送達" />
<!--落單時間-->
<LinearLayout
android:id="@+id/ll_order_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_food_time">
<TextView
android:id="@+id/tv_order_time_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="落單時間:"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
<TextView
android:id="@+id/tv_order_time"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01-04 19:32"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
</LinearLayout>
<!--開台時間-->
<LinearLayout
android:id="@+id/ll_opening_table_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_order_time">
<TextView
android:id="@+id/tv_opening_time_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="開檯時間:"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
<TextView
android:id="@+id/tv_opening_time"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01-20 12:00"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
</LinearLayout>
<!--人數,廚房-->
<LinearLayout
android:id="@+id/ll_people_and_kitchen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_opening_table_time">
<TextView
android:id="@+id/tv_people_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="人數:"
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:visibility="visible" />
<TextView
android:id="@+id/tv_people"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:text="0"
android:visibility="visible" />
<TextView
android:id="@+id/tv_kitchen_location_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_20"
android:text="廚房:"
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:visibility="visible" />
<TextView
android:id="@+id/tv_kitchen_location"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:visibility="visible" />
</LinearLayout>
<!--單號-->
<LinearLayout
android:id="@+id/ll_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/ll_order_time">
<TextView
android:id="@+id/tv_order_num_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="單號:"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
<TextView
android:id="@+id/tv_order_num"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AE86"
android:textSize="@dimen/sp_42" />
</LinearLayout>
<!--自取取餐碼-->
<LinearLayout
android:id="@+id/ll_take_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintLeft_toLeftOf="@+id/ll_order"
app:layout_constraintTop_toBottomOf="@+id/ll_order">
<TextView
android:id="@+id/tv_take_code_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="取餐碼:"
android:textSize="@dimen/sp_18"
android:visibility="gone" />
<TextView
android:id="@+id/tv_take_code"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_18"
android:visibility="gone" />
</LinearLayout>
<!--服務員-->
<LinearLayout
android:id="@+id/ll_waiter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintLeft_toLeftOf="@+id/ll_order"
app:layout_constraintTop_toBottomOf="@+id/ll_take_code">
<TextView
android:id="@+id/tv_waiter_text"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="服務員:"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
<TextView
android:id="@+id/tv_waiter"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="GSPOS"
android:textColor="@color/black"
android:textSize="@dimen/sp_18" />
</LinearLayout>
<TextView
android:id="@+id/line_kitchen_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:maxLines="1"
android:text="————————————————————————————————————————————"
android:textSize="@dimen/sp_18"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_waiter" />
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_kitchen_food"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:visibility="visible"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/line_kitchen_info"/>-->
<LinearLayout
android:id="@+id/ll_kitchen_food"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/line_kitchen_info" />
<TextView
android:id="@+id/tv_kitchen_food_end_line"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:maxLines="1"
android:text="————————————————————————————————————————————"
android:textSize="@dimen/sp_18"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_kitchen_food" />
<!-- <TextView-->
<!-- android:id="@+id/tv_kitchen_print_table_number2"-->
<!-- style="@style/Print_kitchen_table_number_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="center_horizontal"-->
<!-- android:text="19"-->
<!-- android:textSize="@dimen/dp_48"-->
<!-- android:textStyle="bold" />-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_kitchen_food_end_line">
<TextView
android:id="@+id/tv_prj_page_index"
style="@style/Print_kitchen_table_number_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="@dimen/sp_28"
tools:text="1/2" />
<TextView
android:id="@+id/tv_kitchen_print_table_number_bottom"
style="@style/Print_kitchen_table_number_text_style"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="外賣19"
android:textStyle="bold"
android:textSize="@dimen/sp_42"/>
<TextView
android:id="@+id/tv_kitchen_print_quantity"
style="@style/Print_kitchen_table_number_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="@dimen/sp_28"
tools:text="統計數量" />
</LinearLayout>
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="vertical"-->
<!-- android:paddingBottom="@dimen/dp_10"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tv_kitchen_print_table_number">-->
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal">-->
<!-- <LinearLayout-->
<!-- android:id="@+id/ll_left_layout"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="1"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_order_time_text"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="落單時間:"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_order_time"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="01-04 19:32"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_order_num_text"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="單號:"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_order_num"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="AE86"-->
<!-- android:textSize="@dimen/dp_40" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:id="@+id/layout_take_code"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_take_code_text"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="取餐碼:"-->
<!-- android:textSize="@dimen/dp_20"-->
<!-- android:visibility="gone" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_take_code"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:textSize="@dimen/dp_20"-->
<!-- android:visibility="gone" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_order_time_text"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="落單時間:"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_order_time"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="01-04 19:32"-->
<!-- android:textSize="@dimen/dp_28" />-->
<!-- </LinearLayout>-->
<!-- <TextView-->
<!-- android:id="@+id/tv_food_time"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:textSize="@dimen/dp_28"-->
<!-- android:visibility="gone"-->
<!-- tools:text="盡快送達" />-->
<!-- <LinearLayout-->
<!-- android:id="@+id/layout_opening_table_time"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_opening_time_text"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="開檯時間:"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_opening_time"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="01-20 12:00"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center_vertical"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_kitchen_location"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginRight="@dimen/dp_20"-->
<!-- android:text="K1 廚房" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_operator"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="gsadmin" />-->
<!-- </LinearLayout>-->
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_people_text"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="人數:"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18"-->
<!-- android:visibility="visible" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_people"-->
<!-- style="@style/Print_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="1000"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="@dimen/sp_18"-->
<!-- android:visibility="visible" />-->
<!-- </LinearLayout>-->
<!-- <TextView-->
<!-- android:id="@+id/line_kitchen_info"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:maxLines="1"-->
<!-- android:text="——————————————————————————————————————————————————"-->
<!-- app:layout_constraintTop_toBottomOf="@id/tv_operator" />-->
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_kitchen_food"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="@dimen/dp_10"-->
<!-- android:visibility="visible" />-->
<!-- <LinearLayout-->
<!-- android:id="@+id/layout_kitchen_food"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="@dimen/dp_10"-->
<!-- android:orientation="vertical" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_kitchen_print_table_number2"-->
<!-- style="@style/Print_kitchen_table_number_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="center_horizontal"-->
<!-- android:text="19"-->
<!-- android:textSize="@dimen/dp_48"-->
<!-- android:textStyle="bold" />-->
<!-- <RelativeLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="@dimen/dp_20"-->
<!-- android:orientation="horizontal">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_prj_page_index"-->
<!-- style="@style/Print_kitchen_table_number_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_centerInParent="true"-->
<!-- android:layout_gravity="center_horizontal"-->
<!-- android:textSize="@dimen/dp_28"-->
<!-- tools:text="1/2" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_kitchen_print_quantity"-->
<!-- style="@style/Print_kitchen_table_number_text_style"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_alignParentRight="true"-->
<!-- android:textSize="@dimen/dp_30"-->
<!-- tools:text="統計數量" />-->
<!-- </RelativeLayout>-->
<!-- </LinearLayout>-->
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment