Commit 04c3d010 by Wyh

5.26 外賣接單取消物流,取消訂單,打印機邏輯,服務器配置

parent 43817993
......@@ -80,20 +80,14 @@ public class GsaCloudApplication extends BaseApplication {
*/
static {
//设置全局的Header构建器
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
@Override
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
SmartRefreshLayout.setDefaultRefreshHeaderCreator((context, layout) -> {
layout.setPrimaryColorsId(R.color.theme_color, android.R.color.white);//全局设置主题颜色
return new ClassicsHeader(context);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
}
});
//设置全局的Footer构建器
SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
@Override
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
SmartRefreshLayout.setDefaultRefreshFooterCreator((context, layout) -> {
//指定为经典Footer,默认是 BallPulseFooter
return new ClassicsFooter(context).setDrawableSize(20);
}
});
}
......@@ -116,6 +110,7 @@ public class GsaCloudApplication extends BaseApplication {
initPrint();
//初始化日誌管理庫
initXLog();
//初始化服務器地址
initDomainUrl();
//初始化crash記錄
AppCrashHandler.getInstance().init(this);
......@@ -185,6 +180,7 @@ public class GsaCloudApplication extends BaseApplication {
public static void setGlobalDomain() {
//配置全局默認URL
//取出SharedPreferences中存儲的默認服務器地址
RetrofitUrlManager.getInstance().setGlobalDomain(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL);
}
......
......@@ -224,11 +224,15 @@ public class MoneyUtil {
public static BigDecimal divide(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
if (b2.intValue() <= 0) {
return b2;
}
return b1.divide(b2, 2, ROUND_HALF_UP);
}
/**
* 計算除
*
* @param v1
* @param v2
* @param scale 保留幾位小數
......@@ -238,11 +242,15 @@ public class MoneyUtil {
public static float divide(double v1, double v2, int scale, int RoundingMode) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
if (b2.intValue() <= 0) {
return 0f;
}
return b1.divide(b2, scale, RoundingMode).floatValue();
}
/**
* 計算除
*
* @param v1
* @param v2
* @param scale 保留幾位小數
......@@ -251,6 +259,9 @@ public class MoneyUtil {
public static float divide(double v1, double v2, int scale) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
if (b2.intValue() <= 0) {
return 0f;
}
return b1.divide(b2, scale, ROUND_HALF_UP).floatValue();
}
......
......@@ -30,7 +30,7 @@ import com.gingersoft.gsa.cloud.base.R;
*/
public abstract class DialogUtils {
private Context mContext;
private Dialog dialog = null;
private Dialog dialog2 = null;
private View view;
private int style = R.style.PhotoDialog;
private int mWidth = WindowManager.LayoutParams.WRAP_CONTENT;
......@@ -43,6 +43,15 @@ public abstract class DialogUtils {
view = LayoutInflater.from(mContext).inflate(xmlLayout, null);
}
private Dialog getInstance() {
synchronized (this) {
if (dialog2 == null) {
dialog2 = new Dialog(mContext, style);
}
return dialog2;
}
}
public DialogUtils(Context mContext, View view) {
this.mContext = mContext;
this.view = view;
......@@ -64,19 +73,18 @@ public abstract class DialogUtils {
}
public DialogUtils createDialogView() {
dialog = new Dialog(mContext, style);
viewHepler = getViewHepler();
initLayout(viewHepler, dialog);
initLayout(viewHepler, getInstance());
dialog.setContentView(viewHepler.getContentView());
Window dialogWindow = dialog.getWindow();
getInstance().setContentView(viewHepler.getContentView());
Window dialogWindow = getInstance().getWindow();
// WindowManager.LayoutParams lp = dialogWindow.getAttributes();
dialogWindow.setGravity(Gravity.CENTER);
//将对话框的大小按屏幕大小的百分比设置
// WindowManager m = activity.getWindowManager();
// Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
WindowManager.LayoutParams p = dialogWindow.getAttributes(); // 获取对话框当前的参数值
Window window = dialog.getWindow();
Window window = getInstance().getWindow();
if (window != null) {
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
window.getDecorView().setBackgroundResource(android.R.color.transparent);
......@@ -97,33 +105,32 @@ public abstract class DialogUtils {
dialogWindow.setAttributes(p);
// android Activity改成dialog样式后 怎设置点击空白处关闭窗体,点击窗体以外的地方关闭窗体
dialog.setCanceledOnTouchOutside(true);
dialog.setCancelable(true);
getInstance().setCanceledOnTouchOutside(true);
getInstance().setCancelable(true);
// dialog.show();
return this;
}
public Dialog getDialog() {
return dialog;
return getInstance();
}
public DialogUtils dismiss() {
if (dialog != null) {
dialog.dismiss();
}
getInstance().dismiss();
return this;
}
public DialogUtils setGravity(int gravity) {
if (dialog != null && dialog.getWindow() != null) {
dialog.getWindow().setGravity(gravity);
if (getInstance().getWindow() != null) {
getInstance().getWindow().setGravity(gravity);
}
return this;
}
public DialogUtils show() {
dialog.show();
dismiss();
getInstance().show();
return this;
}
......@@ -136,11 +143,11 @@ public abstract class DialogUtils {
}
public boolean isShowing() {
return dialog != null && dialog.isShowing();
return getInstance() != null && getInstance().isShowing();
}
public DialogUtils setOnDismissListener(DialogInterface.OnDismissListener dismissListener) {
dialog.setOnDismissListener(dismissListener);
getInstance().setOnDismissListener(dismissListener);
return this;
}
......@@ -152,7 +159,7 @@ public abstract class DialogUtils {
public DialogUtils setCanceledOnTouchOutside(boolean cancel) {
dialog.setCanceledOnTouchOutside(cancel);
getInstance().setCanceledOnTouchOutside(cancel);
return this;
}
......@@ -204,6 +211,12 @@ public abstract class DialogUtils {
return (T) view;
}
public ViewHepler setOnClickListenter(int viewId, View.OnClickListener onClickListener) {
getView(viewId).setOnClickListener(onClickListener);
return this;
}
/**
* 为TextView设置字符串
*
......
......@@ -4,17 +4,27 @@ package com.gingersoft.gsa.cloud.constans;
* Created by Wyh on 2019/12/21.
*/
public class HttpsConstans {
//默認為香港
public static String ROOT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";
public static String ROOT_ADDRESS_FORMAL = "https://m.ricepon.com:8444/ricepon-cloud-gsa/api/";//正式服務器
public static final String ROOT_SERVER_ADDRESS_FORMAL_SZ = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";//深圳服务器
public static final String ROOT_SERVER_ADDRESS_FORMAL_HK = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";//香港服务器
public static String ROOT_SERVER_YOU_CHANG_HK = "http://192.168.1.142:9012/api/"; //友常本地
public static String ROOT_SERVER_SHI_WEI_HK = "http://192.168.1.154:9012/api/"; //世維本地
//默認為正式
public static String ROOT_SERVER_ADDRESS_FORMAL = ROOT_ADDRESS_FORMAL;
public static String ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/";//清機接口地址
public static String REPORT_SERVER_ADDRESS = "http://a.ricepon.com:58201/ricepon-report/api/";//報表地址
public static String WECHAR_REPORT_SERVER_ADDRESS = "http://a.ricepon.com:61177/member-web/api/";//微信公眾號報表地址:首頁曲線圖數據,支付分析報表數據
//外賣接單
public static final String ROOT_SZ_URL = "http://192.168.1.74:6060";//友常本地
public static final String ROOT_HK_TEST_URL = "https://hktest.ricepon.com:64377";//香港測試
public static final String ROOT_FORMAL_URL = "https://m.ricepon.com";//正式
public static String ROOT_URL = HttpsConstans.ROOT_FORMAL_URL;
public static String _SERVER_ADDRESS = "http://a.ricepon.com:61177/member-web/api/";//報表地址
//清機接口地址
public static String ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/";
//報表地址
public static String REPORT_SERVER_ADDRESS = "http://a.ricepon.com:58201/ricepon-report/api/";
//微信公眾號報表地址:首頁曲線圖數據,支付分析報表數據
public static String WECHAR_REPORT_SERVER_ADDRESS = "http://a.ricepon.com:61177/member-web/api/";
//報表地址
public static String _SERVER_ADDRESS = "http://a.ricepon.com:61177/member-web/api/";
}
package com.gingersoft.gsa.cloud.ui.utils;
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.widget.DialogUtils;
public class AppDialog {
public static void showWaringDialog(Context context, String title, DialogOnClickListenter sureOnclickListenter) {
showWaringDialog(context, title, null, null, sureOnclickListenter, null);
}
// public static void showWaringDialog(Context context, String title, DialogOnClickListenter sureOnclickListenter) {
// showWaringDialog(context, title, null, null, sureOnclickListenter, null);
// }
private static void showWaringDialog(Context context, String title, String confimText, String cancelText, DialogOnClickListenter sureOnclickListenter, DialogOnClickListenter cancelOnclickListenter) {
//暫停接單,彈窗向用戶確認是否關閉
new DialogUtils(context, R.layout.other_order_pause_orders) {
@Override
public void initLayout(ViewHepler hepler, Dialog dialog) {
if (title != null)
hepler.setText(R.id.tv_warning_title, title);
if (confimText != null)
hepler.setText(R.id.tv_dialog_confirm, confimText);
if (sureOnclickListenter != null) {
hepler.getView(R.id.tv_dialog_confirm).setOnClickListener(v -> sureOnclickListenter.onclick(v, dialog));
}
if (cancelText != null)
hepler.setText(R.id.tv_dialog_cancel, cancelText);
if (cancelOnclickListenter != null)
hepler.getView(R.id.tv_dialog_cancel).setOnClickListener(v -> cancelOnclickListenter.onclick(v, dialog));
else
hepler.getView(R.id.tv_dialog_cancel).setOnClickListener(v -> dialog.dismiss());
}
}.createDialogView().show();
}
public interface DialogOnClickListenter {
void onclick(View view, Dialog dialog);
}
}
......@@ -45,6 +45,8 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
RadioButton rbHK;
@BindView(R2.id.rb_youchang_hk)
RadioButton rb_youchang_hk;
@BindView(R2.id.rb_server_formal)
RadioButton rbFormal;
@BindView(R2.id.btn_switch_server)
Button switchServer;
@BindView(R2.id.tv_now_server)
......@@ -73,20 +75,29 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
rbHK.setText("香港服務器:" + HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_HK);
rbSZ.setText("深圳服務器:" + HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_SZ);
rb_youchang_hk.setText("世維本地:" + HttpsConstans.ROOT_SERVER_YOU_CHANG_HK);
rbFormal.setText("正式服務器:" + HttpsConstans.ROOT_ADDRESS_FORMAL);
if (nowServer.equals(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_SZ)) {
rbSZ.setChecked(true);
} else if (nowServer.equals(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_HK)) {
rbHK.setChecked(true);
}else{
} else if (nowServer.equals(HttpsConstans.ROOT_ADDRESS_FORMAL)) {
rbFormal.setChecked(true);
} else {
rb_youchang_hk.setChecked(true);
}
switchServer.setOnClickListener(v -> {
if (rbSZ.isChecked()) {
HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_SZ;
HttpsConstans.ROOT_URL = HttpsConstans.ROOT_SZ_URL;
} else if (rbHK.isChecked()) {
HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_HK;
}else {
HttpsConstans.ROOT_URL = HttpsConstans.ROOT_HK_TEST_URL;
} else if (rbFormal.isChecked()) {
HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_ADDRESS_FORMAL;
HttpsConstans.ROOT_URL = HttpsConstans.ROOT_FORMAL_URL;
} else {
HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_SERVER_SHI_WEI_HK;
HttpsConstans.ROOT_URL = HttpsConstans.ROOT_HK_TEST_URL;
}
GsaCloudApplication.setGlobalDomain();
finish();
......
......@@ -36,6 +36,14 @@
android:textColor="@color/theme_333_color"
android:textSize="@dimen/sp_16" />
<RadioButton
android:id="@+id/rb_server_formal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10"
android:text="正式環境"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/sp_16" />
</RadioGroup>
<TextView
......
......@@ -172,12 +172,12 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
if (BuildConfig.DEBUG) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "複製Token"));
}
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_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, "清機"));
if (BuildConfig.DEBUG) {
mainSideMenuBeans.add(new MainSideMenuBean(R.drawable.ic_setting, "切換環境"));
}
......@@ -316,7 +316,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
.setActionName("showSoldoutCtrlActivity")
.build()
.call();
}else if(name.equals("餐臺管理")){
} else if (name.equals("餐臺管理")) {
CC.obtainBuilder("Component.Manager")
.setActionName("showTableManageActivity")
.build()
......
......@@ -58,7 +58,7 @@
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:layout_weight="1"
android:visibility="invisible" />
android:visibility="visible" />
<LinearLayout
android:id="@+id/layout_login_out"
......
......@@ -6,6 +6,8 @@ import com.google.gson.Gson
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import okhttp3.FormBody
import okhttp3.RequestBody
import kotlin.Pair as Pair1
class WeatherRepository private constructor(private val network: CoolWeatherNetwork) {
......@@ -96,6 +98,26 @@ class WeatherRepository private constructor(private val network: CoolWeatherNetw
network.getDeliveryConfigDTO(requestBody)
}
suspend fun cancelLogistics(shopId: String, orderId: String) = withContext(Dispatchers.IO) {
network.cancelLogistics(getBody("shopId" to shopId, "orderId" to orderId))
}
suspend fun updateOrderStates(memberId: String, orderId: String, status: String, updateBy: String) = withContext(Dispatchers.IO) {
network.cancelOrder(getBody("memberId" to memberId, "orderId" to orderId, "status" to status, "type" to "2", "updateBy" to updateBy))
}
fun getBody(vararg pair: Pair1<String, String>): RequestBody {
val requestBody = FormBody.Builder()
requestBody.apply {
pair.forEach {
requestBody.add(it.first, it.second)
}
}
return requestBody.build()
}
companion object {
private lateinit var instance: WeatherRepository
......
package com.gingersoft.gsa.other_order_mode.data.model.bean
class CancelLogisticsBean(val success: Boolean, val errCode: String, val errMsg: String, val sysTime: Long) {
}
\ No newline at end of file
......@@ -16,27 +16,43 @@ class CoolWeatherNetwork {
private val service = ServiceCreator.create2(WeatherService::class.java)
private val gsposService = ServiceCreator.create3(WeatherService::class.java)
//獲取訂單列表
suspend fun fetchOrderList(requestBody: RequestBody) = orderService.getOrderList(requestBody).await()
//修改餐廳營業狀態
suspend fun updateRestOpenStatus(requestBody: RequestBody) = service.updateRestOpenStatus(requestBody).await()
//獲取訂單分組數量,例:待確認訂單數量,製作中訂單數量。。。
suspend fun getOrderGroupNum(requestBody: RequestBody) = orderService.getOrderGroupNum(requestBody).await()
//獲取訂單信息
suspend fun getOrderInfo(requestBody: RequestBody) = orderService.getOrderDesc(requestBody).await()
//修改訂單狀態
suspend fun updateOrderStatus(requestBody: RequestBody) = orderService.updateOrderStatus(requestBody).await()
//第三方配送接口
suspend fun thirdDelivery(requestBody: RequestBody) = gsposService.thirdDelivery(requestBody).await()
//修改自取訂單狀態
suspend fun updateSelfOrderStatus(requestBody: RequestBody) = orderService.updateSelfOrderStatus(requestBody).await()
// 獲取餐廳配送人員信息
suspend fun getDeliveryInfo(requestBody: RequestBody) = orderService.getDeliveryInfo(requestBody).await()
//獲取物流配置
suspend fun getDeliveryConfigDTO(requestBody: RequestBody) = gsposService.getDeliveryConfigDTO(requestBody).await()
//獲取歷史訂單
suspend fun getHistoryOrderList(requestBody: RequestBody) = orderService.getHistoryOrderList(requestBody).await()
//取消物流
suspend fun cancelLogistics(requestBody: RequestBody) = gsposService.cancelLogistics(requestBody).await()
//取消訂單,有物流需要提示先取消物流
suspend fun cancelOrder(requestBody: RequestBody) = service.cancelOrder(requestBody).await()
private suspend fun <T> Call<T>.await(): T {
return suspendCoroutine { continuation ->
enqueue(object : Callback<T> {
......
package com.gingersoft.gsa.other_order_mode.data.network
import android.util.Log
import com.gingersoft.gsa.cloud.constans.HttpsConstans
import com.gingersoft.gsa.cloud.globalconfig.applyOptions.intercept.LoggingInterceptor
import okhttp3.OkHttpClient
import retrofit2.Retrofit
......@@ -8,17 +10,15 @@ import retrofit2.converter.scalars.ScalarsConverterFactory
import java.util.concurrent.TimeUnit
object ServiceCreator {
private val httpClient = OkHttpClient.Builder().connectTimeout(15, TimeUnit.SECONDS).addInterceptor(LoggingInterceptor())
private const val ROOT_SZ_URL = "http://192.168.1.74:6060"
private const val ROOT_HK_TEST_URL = "https://hktest.ricepon.com:64377"
private const val ROOT_FORMAL_URL = "https://m.ricepon.com"
var ROOT_URL: String = HttpsConstans.ROOT_URL
const val ROOT_URL = ROOT_HK_TEST_URL
private var BASE_URL = "$ROOT_URL/ricepon-wechat/api/"
private var BASE_URL2 = "$ROOT_URL/member-web/api/"
private var BASE_URL3 = "$ROOT_URL/member-web/ricepon-gsa/api/"
private const val BASE_URL = "$ROOT_URL/ricepon-wechat/api/"
private const val BASE_URL2 = "$ROOT_URL/member-web/api/"
private const val BASE_URL3 = "$ROOT_URL/member-web/ricepon-gsa/api/"
private val builder = Retrofit.Builder()
......@@ -26,6 +26,9 @@ object ServiceCreator {
.client(httpClient.build())
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.apply {
Log.e("eee", "服務器地址$ROOT_URL")
}
private val builder2 = Retrofit.Builder()
.baseUrl(BASE_URL2)
......
......@@ -38,4 +38,10 @@ interface WeatherService {
@POST("wechat/findHistoryOrderList")
fun getHistoryOrderList(@Body requestBody: RequestBody): Call<HistoryOrderBean>
@POST("gsa/cancelOrder")
fun cancelLogistics(@Body requestBody: RequestBody): Call<CancelLogisticsBean>
@POST("order/updateOrderStatus")
fun cancelOrder(@Body requestBody: RequestBody): Call<String>
}
\ No newline at end of file
......@@ -13,10 +13,7 @@ import kotlinx.coroutines.launch
class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepository) : ViewModel() {
var data = MutableLiveData<HistoryOrderBean>()
/**
* 根據訂單id獲取訂單詳細信息
*/
fun getHistoryOrderList(context: Context, pageIndex: String, orderNum: String = "", listener: (HistoryOrderBean) -> Unit) {
fun getHistoryOrderList(context: Context, pageIndex: String, orderNum: String = "", listener: (HistoryOrderBean?) -> Unit) {
launch({
var phone = ""
var orderNumber = ""
......@@ -39,11 +36,12 @@ class HistoryOrderViewModel(private val historyOrderRepository: HistoryOrderRepo
if (pageIndex == "1") {
data.value = this
}
listener.invoke(data.value!!)
listener.invoke(data.value)
}
}, {
//出錯
it.printStackTrace()
listener.invoke(null)
})
}
......
......@@ -73,7 +73,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
launch({
repository.getOrderGroup(restaurantId).apply {
//先把所有置0
for(i in mOrderNum){
for (i in mOrderNum) {
i.value = 0
}
//遍歷獲得外賣自取的 待確認和製作中的總單數
......@@ -176,7 +176,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
*/
fun setRestaurantState(context: Context, state: Boolean) {
launch({
Log.e("eee", "點擊狀態$state")
if (state) {
updateRestOpenStatus(state, context)
} else {
......@@ -315,6 +314,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
})
}
/**
* 修改訂單狀態並打印
*/
private suspend fun updateOrderAndPrint(data: OrderList.DataBeanX.DataBean, status: Int, isPush: Int, orderDetails: OrderDetails, context: Context, listener: (Boolean) -> Unit) {
updateOrderStatus(data.Id.toString(), "", status, "", "", isPush, data.order_type).apply {
if (status == 0 || status == 1 || status == 2) {
......@@ -323,18 +325,24 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
//打印
//初始化用於打印的view
//送單成功後,再調用接口獲取取餐碼
getOrderInfo(data.Id.toString()){
if(it != null){
showLoading(context)
getOrderInfo(data.Id.toString()) {
if (it != null) {
printOrder(it, data, context, listener)
}
cancelDialogForLoading()
}
} else {
ToastUtils.show(context, "送單失敗")
}
}
cancelDialogForLoading()
}
}
/**
* 打印訂單
*/
private fun printOrder(orderDetails: OrderDetails, data: OrderList.DataBeanX.DataBean, context: Context, listener: (Boolean) -> Unit) {
if (orderDetails.data != null) {
//訂單信息和廚房單
......@@ -457,6 +465,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
})
}
/**
* 獲取餐廳第三方物流信息
*/
fun getDeliveryConfigDTO(context: Context) {
launch({
repository.getDeliveryConfigDTO(GsaCloudApplication.getRestaurantId(context).toString()).apply {
......@@ -467,6 +478,34 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
})
}
/**
* 取消物流
*/
fun cancelLogistics(shopId: String, orderId: String,listener: (String) -> Unit) {
launch({
repository.cancelLogistics(shopId, orderId).apply {
Log.e("eee", "請求結果$errMsg")
listener.invoke(errMsg)
}
}, {
listener.invoke("取消物流失敗")
})
}
/**
* 取消訂單,如果有物流需要先提示取消物流
*/
fun cancelOrder(context: Context, orderId: String,listener: (String) -> Unit) {
launch({
repository.updateOrderStates(GsaCloudApplication.getMemberId(context).toString(), orderId, "6", GsaCloudApplication.getMemberName(context)).apply {
Log.e("eee", "取消訂單請求結果$this")
listener.invoke(this)
}
}, {
listener.invoke("取消訂單失敗")
})
}
private fun launch(block: suspend () -> Unit, error: suspend (Throwable) -> Unit) = viewModelScope.launch {
try {
......@@ -476,4 +515,9 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}
}
override fun onCleared() {
super.onCleared()
cancelDialogForLoading()
}
}
\ No newline at end of file
......@@ -47,6 +47,7 @@ class HistoryOrderActivity : BaseActivity() {
showLoading()
mViewModel.getHistoryOrderList(this, page.toString(), orderNum) {
cancelDialogForLoading()
it?.let {
refreshLayout.setEnableLoadMore(it.getData() != null)
refreshLayout.finishRefresh()
refreshLayout.finishLoadMore()
......@@ -59,7 +60,7 @@ class HistoryOrderActivity : BaseActivity() {
cancelDialogForLoading()
if (it2.data != null && it2.data!!.isNotEmpty()) {
//顯示彈窗
OtherOrderUtils.showOrderDetailsDialog(this@HistoryOrderActivity, it2, it.STATUS, it.order_type, false) { _, _ ->
OtherOrderUtils.showOrderDetailsDialog(this@HistoryOrderActivity, it2, it.STATUS, it.order_type, false) { view, _, _ ->
//確認訂單、指派送貨點擊事件
}
} else {
......@@ -71,7 +72,8 @@ class HistoryOrderActivity : BaseActivity() {
mHistoryOrderAdapter!!.data = it.getData()
mHistoryOrderAdapter!!.notifyDataSetChanged()
}
layoutNoData.setState(it.getData() == null || it.getData()!!.size <= 0)
}
layoutNoData.setState(it?.getData() == null || it.getData()!!.size <= 0)
}
}
......
......@@ -6,23 +6,19 @@ import android.content.Context
import android.content.Intent
import android.content.ServiceConnection
import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
import android.media.AudioAttributes
import android.media.AudioManager
import android.media.SoundPool
import android.os.Build
import android.os.Bundle
import android.os.IBinder
import android.util.Log
import android.view.View
import android.widget.TextView
import androidx.core.animation.doOnEnd
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.viewpager.widget.ViewPager
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.ui.view.SwitchButton
import com.gingersoft.gsa.other_order_mode.R
......
......@@ -9,6 +9,8 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.other_order_mode.R
import com.gingersoft.gsa.other_order_mode.model.viewModel.PageViewModel
import com.gingersoft.gsa.other_order_mode.ui.adapter.OtherOrdersAdapter
......@@ -17,6 +19,7 @@ import com.gingersoft.gsa.other_order_mode.util.InjectorUtil
import com.gingersoft.gsa.other_order_mode.util.OtherOrderUtils
import com.gingersoft.gsa.other_order_mode.util.setState
import kotlinx.android.synthetic.main.fragment_other_order.*
import kotlin.String as String1
/**
* A placeholder fragment containing a simple view.
......@@ -50,21 +53,41 @@ class PlaceholderFragment : BaseFragment() {
adapter.setOnItemClickListenter { data ->
// 點擊查詢食品詳情
showLoading()
pageViewModel.getOrderInfo(data.Id.toString()) { it1 ->
//顯示彈窗
cancelDialogForLoading()
if (this@PlaceholderFragment.context != null && it1 != null) {
OtherOrderUtils.showOrderDetailsDialog(this@PlaceholderFragment.context!!, it1, data.STATUS, data.order_type) { _, dialog ->
OtherOrderUtils.showOrderDetailsDialog(this@PlaceholderFragment.context!!, it1, data.STATUS, data.order_type) { view, _, dialog ->
when (view.id) {
R.id.btn_assign_shipping -> {
//修改訂單狀態
pageViewModel.updateOrderStatus(this@PlaceholderFragment.context!!, data, it1) {
dialog.dismiss()
if (it) {
// 關閉彈窗,並刷新當前頁面
refresh()
// pageViewModel.refreshState.postValue(pageViewModel.refreshState.value!! + 1)
}
}
}
R.id.btn_cancel_order -> {
//取消訂單,先判斷有沒有物流
showLoading()
if (it1.data!![0].isDelete == 1) {
//本店配送的單,應該先需要召回
pageViewModel.cancelOrder(context!!, data.Id.toString()){
ToastUtils.show(context, it)
cancelDialogForLoading()
}
} else {
//第三方物流單,得先取消物流
pageViewModel.cancelLogistics(GsaCloudApplication.getRestaurantId(context).toString(), data.Id.toString()) {
ToastUtils.show(context, it)
cancelDialogForLoading()
}
}
}
}
}
}
}
}
......
......@@ -2,7 +2,7 @@ package com.gingersoft.gsa.other_order_mode.util
import android.app.Dialog
import android.content.Context
import android.widget.Button
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.databinding.DataBindingUtil
......@@ -17,7 +17,7 @@ import com.jess.arms.utils.ArmsUtils
object OtherOrderUtils {
fun showOrderDetailsDialog(context: Context, data: OrderDetails, orderStuats: Int, orderType: Int, showBtn: Boolean = true, listenter: ((data: OrderDetails.DataBean, dialog: Dialog) -> Unit)?) {
fun showOrderDetailsDialog(context: Context, data: OrderDetails, orderStuats: Int, orderType: Int, showBtn: Boolean = true, listenter: ((view: View, data: OrderDetails.DataBean, dialog: Dialog) -> Unit)?) {
object : DialogUtils(context, R.layout.layout_order_info_dialog_new) {
override fun initLayout(hepler: ViewHepler, dialog: Dialog) {
if (data.data != null) {
......@@ -30,7 +30,9 @@ object OtherOrderUtils {
//如果有物流號,就不顯示指派送貨按鈕
layoutOrderInfoDialogBinding.showBtn = showBtn
val btnContent: String
val type = if (orderType == 7) "自取" else "外賣"
var cancelBtnContent = ""
val type = if (orderType == 7) "自取" else "外送"
val orderStatus: String
when (orderStuats) {
......@@ -40,10 +42,12 @@ object OtherOrderUtils {
btnContent = "製作完成"
tvStatus.setTextColor(context.resources.getColor(R.color.order_state0_color))
} else {
btnContent = if (orderData.isDelete == 1) {
"指派送貨"
if (orderData.isDelete == 1) {
btnContent = "指派送貨"
cancelBtnContent = "取消訂單"
} else {
"重印"
btnContent = "重印"
cancelBtnContent = "取消物流"
}
tvStatus.setTextColor(context.resources.getColor(R.color.order_state1_color))
}
......@@ -64,19 +68,26 @@ object OtherOrderUtils {
btnContent = "確認訂單"
orderStatus = "待確認"
tvStatus.setTextColor(context.resources.getColor(R.color.order_state0_color))
cancelBtnContent = "取消訂單"
}
}
layoutOrderInfoDialogBinding.orderStatus = type + orderStatus
layoutOrderInfoDialogBinding.btnContent = btnContent
layoutOrderInfoDialogBinding.cancelBtnContent = cancelBtnContent
}
val rvFood: RecyclerView = hepler.getView(R.id.rv_food)
rvFood.layoutManager = LinearLayoutManager(context)
rvFood.adapter = FoodListAdapter(context, data.data!![0].PRODUCT_NAME!!)
hepler.getView<Button>(R.id.btn_assign_shipping).setOnClickListener {
hepler.setOnClickListenter(R.id.btn_assign_shipping) {
//指派送貨或是確認訂單?
//確認訂單,調用接口,並打印
listenter?.invoke(data.data!![0], dialog)
listenter?.invoke(it, data.data!![0], dialog)
}
hepler.setOnClickListenter(R.id.btn_cancel_order) {
//取消訂單
listenter?.invoke(it, data.data!![0], dialog)
}
hepler.getView<ImageView>(R.id.iv_close).setOnClickListener {
......
......@@ -28,6 +28,10 @@
type="String" />
<variable
name="cancelBtnContent"
type="String" />
<variable
name="orderStatus"
type="String" />
......@@ -43,8 +47,8 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@drawable/shape_dialog_bg"
android:layout_marginBottom="@dimen/dp_10"
android:background="@drawable/shape_dialog_bg"
android:paddingTop="@dimen/dp_15"
android:paddingBottom="@dimen/dp_15"
app:layout_constraintBottom_toTopOf="@id/iv_close"
......@@ -247,6 +251,31 @@
<TextView
android:id="@+id/tv_remark_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_8"
android:text="備註:"
android:visibility="@{data.remark==null||data.remark.length() == 0?View.GONE:View.VISIBLE}"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_receive_address" />
<TextView
android:id="@+id/tv_remark"
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="right"
android:text="@{data.remark}"
android:visibility="@{data.remark==null||data.remark.length() == 0?View.GONE:View.VISIBLE}"
app:layout_constraintLeft_toRightOf="@id/tv_remark_text"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_remark_text" />
<TextView
android:id="@+id/tv_delivery_man_name_text"
style="@style/otherOrderReceiving_title_textStyle"
android:layout_width="0dp"
......@@ -256,7 +285,7 @@
android:gravity="right"
android:text="@string/deliveryman"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_receive_address" />
app:layout_constraintTop_toBottomOf="@id/tv_remark" />
<!-- android:visibility="@{(data.delivery_man_name==null || data.delivery_man_name.length()==0) ? View.GONE : View.VISIBLE}"-->
......@@ -290,8 +319,8 @@
style="@style/otherOrderReceiving_information_textStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
android:gravity="right"
android:text="@{data.delivery_man_phone_num}"
app:layout_constraintLeft_toRightOf="@id/tv_delivery_man_phone_text"
app:layout_constraintRight_toRightOf="parent"
......@@ -522,6 +551,21 @@
android:textColor="@color/white"
android:textSize="@dimen/dp_16"
android:visibility="@{showBtn?View.VISIBLE:View.GONE}"
app:layout_constraintBottom_toTopOf="@id/btn_cancel_order"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<Button
android:id="@+id/btn_cancel_order"
android:layout_width="0dp"
android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
android:background="@drawable/shape_green_btn"
android:text="@{cancelBtnContent}"
android:textColor="@color/white"
android:textSize="@dimen/dp_16"
android:visibility="@{(cancelBtnContent==null||cancelBtnContent.length()==0)?View.GONE:View.VISIBLE}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
......
......@@ -100,13 +100,14 @@
<TextView
android:id="@+id/tv_order_user_name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:text="@{data.rECEIVER}"
android:textColor="@color/theme_text_color"
android:textSize="@dimen/sp_14"
android:textStyle="bold"
app:layout_constraintRight_toLeftOf="@id/tv_order_time"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_ordering_method" />
......@@ -117,7 +118,6 @@
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_5"
android:text="@{TimeUtils.parseTimeRepeat(data.cREATE_TIME,TimeUtils.DEFAULT_DATE_FORMAT)}"
app:layout_constraintBottom_toBottomOf="@id/tv_order_user_name"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_order_user_name" />
......
......@@ -184,7 +184,7 @@ public class PrintOtherOrder extends PrinterRoot {
private Bitmap initPrintView(Context context, OrderDetails.DataBean data) {
View view = LayoutInflater.from(context).inflate(R.layout.print_confirm_order_view, null, false);
// 訂單類型
setText(view, R.id.tv_order_type, data.getOrder_type() == 2 ? "外" : "自取");
setText(view, R.id.tv_order_type, data.getOrder_type() == 2 ? "外" : "自取");
// 訂單號
setText(view, R.id.tv_order_number, "訂單號:" + data.getORDER_NO());
if (data.getTakeFoodCode() != null && !data.getTakeFoodCode().equals("0")) {
......
......@@ -119,9 +119,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
if (printerInIt != null) {
printerInIt.setmContext(mContext).setPrintListener(this);
}
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(mContext);
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
printerDeviceBeans = printerDeviceDaoUtils.queryAllPrinterDeviceBean();
if (type == PrinterRoot.PRINT_TEST) {
if (deviceBean != null) {
printerInIt.ipDevicePrint(deviceBean, printerInIt.getPrintBitmap(mContext).get(""));
......@@ -311,6 +310,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private void addPrintDevice() {
ToastUtils.show(mContext, "沒有打印機,請添加");
printFile();
// startActivityForResult(new Intent(mContext, PrinterAddActivity.class), ADD_PRINT_CODE);
}
......
......@@ -139,9 +139,9 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
@Override
public void initIntent() {
int position = getIntent().getIntExtra("printer_position", 0);
int position = getIntent().getIntExtra("printer_position", -1);
devicess = (List<PrinterDeviceBean>) getIntent().getSerializableExtra("printList");
if (devicess != null) {
if (devicess != null && position != -1) {
printerDeviceBean = devicess.get(position);
if (printerDeviceBean != null) {
devicess.remove(position);//從打印機列表中移除掉當前打印機,選擇飛單時不能選擇當前打印機
......@@ -245,12 +245,16 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
.createDialogView()
.setOnDismissListener(dialog -> {
if (viewId == R.id.layout_select_fail_one) {
if (oneFailPosition < devicess.size() && oneFailPosition >= 0) {
mTvFailNameOne.setText(devicess.get(oneFailPosition).getName());
mTvFailNameOne.setTextColor(getResources().getColor(R.color.color_3c));
}
} else {
if (twoFailPosition < devicess.size() && twoFailPosition >= 0) {
mTvFailNameTwo.setText(devicess.get(twoFailPosition).getName());
mTvFailNameTwo.setTextColor(getResources().getColor(R.color.color_3c));
}
}
})
.show();
}
......@@ -259,7 +263,7 @@ public class PrinterAddActivity extends BaseActivity<PrinterAddPresenter> implem
* 添加或測試打印機
*/
private void addOrTestPrint(View v) {
if(mEdPrintName.getText() == null || mEdPrintName.getText().toString().isEmpty()){
if (mEdPrintName.getText() == null || mEdPrintName.getText().toString().isEmpty()) {
ToastUtils.show(mContext, "請輸入打印機名稱");
return;
}
......
......@@ -76,6 +76,8 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem
initViewPager();
}
private IpPrintListActivityFragment ipPrintListActivityFragment;
/**
* 设置Viewpager的适配器
*/
......@@ -87,7 +89,8 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem
mFragments.add(LocalPrintFragment.newInstance());
}
titles.add("網絡打印");
mFragments.add(IpPrintListActivityFragment.newInstance());
ipPrintListActivityFragment = IpPrintListActivityFragment.newInstance();
mFragments.add(ipPrintListActivityFragment);
//实例化适配器
mTabFragmentAdapter = new TabFragmentAdapter(getSupportFragmentManager(), 1);
......@@ -109,7 +112,11 @@ public class PrinterListActivity extends BaseActivity<PrintListPresenter> implem
topBar.setTitle("打印設置");
topBar.setBackgroundColor(getResources().getColor(R.color.theme_color));
topBar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener(v -> finish());
topBar.addRightImageButton(R.drawable.ic_add, R.id.printer_add).setOnClickListener(v -> startActivity(new Intent(mContext, PrinterAddActivity.class)));
topBar.addRightImageButton(R.drawable.ic_add, R.id.printer_add).setOnClickListener(v -> {
if (ipPrintListActivityFragment != null && ipPrintListActivityFragment.isAdded()) {
ipPrintListActivityFragment.startToEditPrint(-1);
}
});
}
@Override
......
......@@ -39,9 +39,13 @@ public class PrinterListAdapter extends BaseQuickAdapter<PrinterDeviceBean, Base
}
((RadioButton) helper.getView(R.id.cb_printer_item)).setChecked(item.getStatus() == 2);
helper.getView(R.id.tv_default_print).setVisibility(item.getStatus() == 2 ? View.VISIBLE : View.GONE);
// helper.setOnItemSelectedClickListener(R.id.layout_delete,)
helper.addOnClickListener(R.id.layout_delete);
}
public int getSelectPosition() {
return selectPosition;
}
......
package com.joe.print.mvp.ui.fragment;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Message;
import android.view.LayoutInflater;
......@@ -18,10 +17,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.PrinterDeviceDaoUtils;
import com.gingersoft.gsa.cloud.ui.utils.AppDialog;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
......@@ -31,15 +29,12 @@ import com.joe.print.di.component.DaggerIpPrintListActivityComponent;
import com.joe.print.di.module.IpPrintListActivityModule;
import com.joe.print.mvp.contract.IpPrintListActivityContract;
import com.joe.print.mvp.presenter.IpPrintListActivityPresenter;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.joe.print.mvp.ui.activity.PrinterAddActivity;
import com.joe.print.mvp.ui.adapter.PrinterListAdapter;
import com.yanzhenjie.recyclerview.SwipeMenuCreator;
import com.yanzhenjie.recyclerview.SwipeMenuItem;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yanzhenjie.recyclerview.touch.OnItemMoveListener;
import com.yanzhenjie.recyclerview.touch.OnItemStateChangedListener;
import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration;
import java.io.Serializable;
import java.util.Collections;
......@@ -166,16 +161,16 @@ public class IpPrintListActivityFragment extends BaseFragment<IpPrintListActivit
// 1. MATCH_PARENT 自适应高度,保持和Item一样高;
// 2. 指定具体的高,比如80;
// 3. WRAP_CONTENT,自身高度,不推荐;
int height = ViewGroup.LayoutParams.MATCH_PARENT;
// int height = ViewGroup.LayoutParams.MATCH_PARENT;
// 添加右侧的按鈕。
SwipeMenuItem deleteItem = new SwipeMenuItem(mContext).setBackground(
R.color.theme_color)
// .setImage(R.drawable.ic_action_delete)
.setText("刪除")
.setTextColor(Color.WHITE)
.setWidth(width)
.setHeight(height);
swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。
// SwipeMenuItem deleteItem = new SwipeMenuItem(mContext).setBackground(
// R.color.theme_color)
//// .setImage(R.drawable.ic_action_delete)
// .setText("刪除")
// .setTextColor(Color.WHITE)
// .setWidth(width)
// .setHeight(height);
// swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。
};
/**
......@@ -216,27 +211,24 @@ public class IpPrintListActivityFragment extends BaseFragment<IpPrintListActivit
if (printListAdapter == null) {
mRvPrintList.setOnItemClickListener((view, adapterPosition) -> {
//item點擊事件 打開打印機詳情
Intent intent = new Intent(mContext, PrinterAddActivity.class);
intent.putExtra("printer_position", adapterPosition);
intent.putExtra("printList", (Serializable) devicess);
startActivity(intent);
startToEditPrint(adapterPosition);
});
//menu 右侧菜單點擊事件
mRvPrintList.setOnItemMenuClickListener((menuBridge, position) -> {
//刪除按鈕點擊事件
menuBridge.closeMenu();
//調用刪除接口
mPresenter.deletePrinter(devicess.get(position).getId() + "");
if (printListAdapter.getSelectPosition() == position) {
//如果刪除的是當前選中的默認打印機,那麼移除默認打印機
SPUtils.remove(mContext, PrintConstans.DEFAULT_PRINT_IP);
SPUtils.remove(mContext, PrintConstans.DEFAULT_PRINT_PORT);
SPUtils.remove(mContext, PrintConstans.DEFAULT_PRINT_PAPER);
printListAdapter.setSelectPosition(-1);
}
devicess.remove(position);
printListAdapter.notifyItemRemoved(position);
});
// mRvPrintList.setOnItemMenuClickListener((menuBridge, position) -> {
// //刪除按鈕點擊事件
// menuBridge.closeMenu();
// //調用刪除接口
// mPresenter.deletePrinter(devicess.get(position).getId() + "");
// if (printListAdapter.getSelectPosition() == position) {
// //如果刪除的是當前選中的默認打印機,那麼移除默認打印機
// SPUtils.remove(mContext, PrintConstans.DEFAULT_PRINT_IP);
// SPUtils.remove(mContext, PrintConstans.DEFAULT_PRINT_PORT);
// SPUtils.remove(mContext, PrintConstans.DEFAULT_PRINT_PAPER);
// printListAdapter.setSelectPosition(-1);
// }
// devicess.remove(position);
// printListAdapter.notifyItemRemoved(position);
// });
// Item的Menu点击。
mRvPrintList.setOnItemStateChangedListener(mOnItemStateChangedListener); // 监听Item的手指状态,拖拽、侧滑、松开。
mRvPrintList.setLongPressDragEnabled(true); // 长按拖拽,默认关闭。
......@@ -270,6 +262,18 @@ public class IpPrintListActivityFragment extends BaseFragment<IpPrintListActivit
});// 监听拖拽和侧滑删除,更新UI和数据源。
printListAdapter = new PrinterListAdapter(devicess, mContext);
printListAdapter.setOnItemChildClickListener((adapter, view, position) -> AppDialog.showWaringDialog(mContext, "是否刪除打印機", (view1, dialog) -> {
//調用刪除接口
mPresenter.deletePrinter(devicess.get(position).getId() + "");
devicess.remove(position);
printListAdapter.notifyItemRemoved(position);
dialog.dismiss();
if (devicess == null || devicess.size() == 0) {
mTvAddPrint.setVisibility(View.VISIBLE);
} else {
mTvAddPrint.setVisibility(View.GONE);
}
}));
mRvPrintList.setLayoutManager(new LinearLayoutManager(mContext));
//分割线
// mRvPrintList.addItemDecoration(new DefaultItemDecoration(ContextCompat.getColor(mContext, R.color.line_color)));
......@@ -281,6 +285,13 @@ public class IpPrintListActivityFragment extends BaseFragment<IpPrintListActivit
}
}
public void startToEditPrint(int adapterPosition) {
Intent intent = new Intent(mContext, PrinterAddActivity.class);
intent.putExtra("printer_position", adapterPosition);
intent.putExtra("printList", (Serializable) devicess);
startActivity(intent);
}
@Override
public void loadFile() {
mRvPrintList.setVisibility(View.GONE);
......@@ -291,7 +302,7 @@ public class IpPrintListActivityFragment extends BaseFragment<IpPrintListActivit
@Override
public void onClick(View v) {
if (v.getId() == R.id.tv_add_print) {
startActivity(new Intent(mContext, PrinterAddActivity.class));
startToEditPrint(-1);
}
}
}
......@@ -97,7 +97,7 @@
style="@style/printOtherOrderTextStyle_font_style_twenty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text='單時間' />
android:text='單時間' />
<TextView
android:id="@+id/tv_remark"
......
......@@ -74,13 +74,29 @@
android:id="@+id/tv_printer_edit"
android:layout_width="@dimen/dp_17"
android:layout_height="@dimen/dp_17"
android:layout_marginRight="@dimen/dp_19"
android:layout_marginRight="@dimen/dp_10"
android:src="@drawable/ic_edit"
android:text="編輯"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintRight_toLeftOf="@id/layout_delete"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/layout_delete"
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="@dimen/dp_19"
android:src="@drawable/ic_delete_bill_method" />
</FrameLayout>
<View
android:id="@+id/horizontal_dividing_line"
android:layout_width="match_parent"
......
......@@ -3,6 +3,6 @@
<string name="print_port">端口號:%1$s</string>
<string name="create_order_time">單時間:</string>
<string name="create_order_time">單時間:</string>
<string name="address">地址:</string>
</resources>
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