Commit 65c6b704 by Wyh

6.22 登出心跳清除接口代碼 外賣接單訂單詳情加載速度優化

parent 3f5df67d
...@@ -88,7 +88,6 @@ public class PrintSocketHolder { ...@@ -88,7 +88,6 @@ public class PrintSocketHolder {
} }
} catch (Exception e) { } catch (Exception e) {
closeSocket(); closeSocket();
// Log.e("eee", "連接報錯:" + e.getMessage());
e.printStackTrace(); e.printStackTrace();
return ERROR_2; return ERROR_2;
} }
......
...@@ -149,5 +149,7 @@ ...@@ -149,5 +149,7 @@
<string name="wai"></string> <string name="wai"></string>
<string name="amount_unit">$</string> <string name="amount_unit">$</string>
<string name="edit_digits_number_words">0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</string>
<string name="print_split_line">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - </string> <string name="print_split_line">- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - </string>
</resources> </resources>
...@@ -5,25 +5,19 @@ import android.content.Intent; ...@@ -5,25 +5,19 @@ import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.contract.NewMainContract; import com.gingersoft.gsa.cloud.main.mvp.contract.NewMainContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.CheckVersionRequest; import com.gingersoft.gsa.cloud.main.mvp.model.bean.CheckVersionRequest;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity; import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity;
import com.gingersoft.gsa.cloud.ui.activity.WebActivity; import com.gingersoft.gsa.cloud.ui.activity.WebActivity;
import com.jess.arms.base.delegate.IActivity;
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;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.PermissionUtil;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
...@@ -120,7 +114,22 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -120,7 +114,22 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
public void loginOut() { public void loginOut() {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", GsaCloudApplication.getRestaurantId(mApplication) + "")
.build(); .build();
CC.obtainBuilder("Component.OtherOrder")
.setActionName("closeHeart")
.build()
.call();
mModel.clearHeartbeat(requestBody)
.subscribeOn(Schedulers.io())
.subscribe(new ErrorHandleSubscriber<Object>(mErrorHandler) {
@Override
public void onNext(@NonNull Object info) {
}
});
mModel.loginOut(requestBody) mModel.loginOut(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null)) .doOnSubscribe(disposable -> mRootView.showLoading(null))
...@@ -135,6 +144,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa ...@@ -135,6 +144,7 @@ public class NewMainPresenter extends BasePresenter<NewMainContract.Model, NewMa
mRootView.loginOut(); mRootView.loginOut();
//清空用戶信息 //清空用戶信息
GsaCloudApplication.clearMemberInfo(); GsaCloudApplication.clearMemberInfo();
} }
}); });
} }
......
...@@ -12,8 +12,6 @@ import android.text.TextUtils; ...@@ -12,8 +12,6 @@ import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
...@@ -30,10 +28,7 @@ import com.gingersoft.gsa.cloud.base.utils.RestaurantInfoUtils; ...@@ -30,10 +28,7 @@ import com.gingersoft.gsa.cloud.base.utils.RestaurantInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.encryption.Aes; import com.gingersoft.gsa.cloud.base.utils.encryption.Aes;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.utils.FunctionDaoUtils;
import com.gingersoft.gsa.cloud.function.FunctionManager;
import com.gingersoft.gsa.cloud.main.BuildConfig; import com.gingersoft.gsa.cloud.main.BuildConfig;
import com.gingersoft.gsa.cloud.main.ComponentMain;
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.DaggerNewMainComponent; import com.gingersoft.gsa.cloud.main.di.component.DaggerNewMainComponent;
...@@ -47,7 +42,6 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.view.SlidingMenu; ...@@ -47,7 +42,6 @@ import com.gingersoft.gsa.cloud.main.mvp.ui.view.SlidingMenu;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean; import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.BaseFragmentActivity; import com.jess.arms.base.BaseFragmentActivity;
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;
...@@ -62,8 +56,6 @@ import butterknife.BindView; ...@@ -62,8 +56,6 @@ import butterknife.BindView;
import butterknife.BindViews; import butterknife.BindViews;
import butterknife.OnClick; import butterknife.OnClick;
import static com.gingersoft.gsa.cloud.database.bean.Function.STATUS_NONACTIVATED;
import static com.gingersoft.gsa.cloud.database.bean.Function.STATUS_TIME_LIMIT;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -236,25 +228,25 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -236,25 +228,25 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
List<Function> functions = new ArrayList<>(); List<Function> functions = new ArrayList<>();
// if (!BuildConfig.DEBUG) { // if (!BuildConfig.DEBUG) {
functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0)); functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0));
functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0)); functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0));
functions.add(new Function((long) 139, 150, 5, "外送模式", R.drawable.ic_delivery_mode_close, 0)); functions.add(new Function((long) 139, 150, 5, "外送模式", R.drawable.ic_delivery_mode_close, 0));
functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0)); functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1)); functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
functions.add(new Function((long) 151, 0, 5, "管理", 0, 0)); functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0)); functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
functions.add(new Function((long) 142, 151, 5, "外賣接單", R.drawable.ic_takeaway_orders, 0)); functions.add(new Function((long) 142, 151, 5, "外賣接單", R.drawable.ic_takeaway_orders, 0));
functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0)); functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0));
functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0)); functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
//// functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1)); //// functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
//// functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1)); //// functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0)); functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0));
functions.add(new Function((long) 152, 0, 5, "員工", 0, 0)); functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1)); functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1)); functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1)); functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
// } else { // } else {
// functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order")); // functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order"));
// functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager")); // functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager"));
...@@ -377,7 +369,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -377,7 +369,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
GsaCloudApplication.setRestaurantName(NewMainActivity.this, item.getText()); GsaCloudApplication.setRestaurantName(NewMainActivity.this, item.getText());
updateTitleInfo(); updateTitleInfo();
CC.obtainBuilder("Component.Download") CC.obtainBuilder("Component.Download")
.setActionName("showDownloadActivity") .setActionName("showDownloadActivity")
.addParam("fromPage", 2) .addParam("fromPage", 2)
......
...@@ -77,6 +77,8 @@ dependencies { ...@@ -77,6 +77,8 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.ethanhua:skeleton:1.1.2' implementation 'com.ethanhua:skeleton:1.1.2'
implementation 'io.supercharge:shimmerlayout:2.1.0' implementation 'io.supercharge:shimmerlayout:2.1.0'
implementation 'com.ditclear:bindinglistadapter:1.0.0'
if (project.ext.runAsApp) { if (project.ext.runAsApp) {
addComponent 'print-module' addComponent 'print-module'
} }
......
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"2020-05-15_GSA-Cloud_1.0_debug_.apk","fullName":"debug","baseName":"debug"},"path":"2020-05-15_GSA-Cloud_1.0_debug_.apk","properties":{}}]
\ No newline at end of file
package com.gingersoft.gsa.other_order_mode.data.model.bean package com.gingersoft.gsa.other_order_mode.data.model.bean
import androidx.databinding.ObservableArrayList
import java.io.Serializable import java.io.Serializable
data class DeliveryConfig( data class DeliveryConfig(
...@@ -7,7 +8,7 @@ data class DeliveryConfig( ...@@ -7,7 +8,7 @@ data class DeliveryConfig(
val success: Boolean, val success: Boolean,
val sysTime: Long) { val sysTime: Long) {
data class Data(val list: List<DeliveryInfo>) { data class Data(val list: ObservableArrayList<DeliveryInfo>) {
data class DeliveryInfo ( data class DeliveryInfo (
val addressDetail: String, val addressDetail: String,
val deliveryCost: Double, val deliveryCost: Double,
......
...@@ -115,7 +115,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -115,7 +115,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
}) })
} }
/** /**
* 獲取訂單列表 * 獲取訂單列表
*/ */
...@@ -242,18 +241,17 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -242,18 +241,17 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
// } // }
fun getShipanyAndOrderInfo(restaurantId: String, orderId: String, listener: (OrderDetails?) -> Unit) { var orderDetails = MutableLiveData<OrderDetails>()
//待优化,将订单详情和物流送达时间分开,通过监听者通知更新物流时间
fun getShipanyAndOrderInfo(restaurantId: String, orderId: String) {
launch({ launch({
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
val orderDetail = withContext(Dispatchers.Default) { repository.getOrderInfo(orderId) } val orderDetail = withContext(Dispatchers.Default) { repository.getOrderInfo(orderId) }
orderDetails.postValue(orderDetail)
if (orderDetail.data != null && orderDetail.data!!.isNotEmpty()) { if (orderDetail.data != null && orderDetail.data!!.isNotEmpty()) {
//訂單詳情不為空 //訂單詳情不為空
if (orderDetail.data!![0].isDelete != 0) { if (orderDetail.data!![0].isDelete == 0) {//為0是第三方物流單
//如果不是第三方物流單
withContext(Dispatchers.Main) {
listener.invoke(orderDetail)
}
} else {
if (orderDetail.data!![0].curStat != 0) { if (orderDetail.data!![0].curStat != 0) {
val data = orderDetail.data!![0] val data = orderDetail.data!![0]
val type: Int val type: Int
...@@ -277,26 +275,18 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -277,26 +275,18 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
} }
} }
val estimatedBean = withContext(Dispatchers.Default) { repository.getShipanyOrderTime(restaurantId, orderId, type) }//1、预计整张订单完成时间2、預計配送員接單時間3、預計配送員到店時間4、配送員預計送達時間 val estimatedBean = withContext(Dispatchers.Default) { repository.getShipanyOrderTime(restaurantId, orderId, type) }//1、预计整张订单完成时间2、預計配送員接單時間3、預計配送員到店時間4、配送員預計送達時間
if (estimatedBean?.data != null && estimatedBean.data.estimated_time > 0) { // if (estimatedBean.data.estimated_time > 0) {
data.estimatedTime = estimatedTime + ("${estimatedBean.data.estimated_time}分鐘後") data.estimatedTime = estimatedTime + ("${estimatedBean.data.estimated_time}分鐘後")
} else { orderDetails.postValue(orderDetail)
data.estimatedTime = "" // } else {
} // data.estimatedTime = ""
} // }
withContext(Dispatchers.Main) {
listener.invoke(orderDetail)
} }
} }
} else {
withContext(Dispatchers.Main) {
listener.invoke(null)
}
} }
} }
}, { }, {
withContext(Dispatchers.Main) { orderDetails.postValue(null)
listener.invoke(null)
}
}) })
} }
...@@ -727,7 +717,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -727,7 +717,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
fun getPayMethod(orderId: String) { fun getPayMethod(orderId: String) {
launch({ launch({
repository.getPayMethod(orderId).apply { repository.getPayMethod(orderId).apply {
Log.e("eee", "獲取支付方式$this")
if (this.code == "1" && this.data != null) { if (this.code == "1" && this.data != null) {
payTypeBean.postValue(this.data) payTypeBean.postValue(this.data)
} else { } else {
...@@ -735,7 +724,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -735,7 +724,6 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
} }
} }
}, { }, {
Log.e("eee", "獲取支付方式報錯${it.message}")
payTypeBean.postValue(null) payTypeBean.postValue(null)
}) })
} }
......
package com.gingersoft.gsa.other_order_mode.ui.activity package com.gingersoft.gsa.other_order_mode.ui.activity
import android.os.Bundle import android.os.Bundle
import androidx.databinding.ObservableArrayList
import com.gingersoft.gsa.other_order_mode.R import com.gingersoft.gsa.other_order_mode.R
import com.gingersoft.gsa.other_order_mode.data.model.bean.DeliveryConfig import com.gingersoft.gsa.other_order_mode.data.model.bean.DeliveryConfig
import com.gingersoft.gsa.other_order_mode.ui.base.BaseActivity import com.gingersoft.gsa.other_order_mode.ui.base.BaseActivity
import com.gingersoft.gsa.other_order_mode.ui.fragment.DeliveryFragment import com.gingersoft.gsa.other_order_mode.ui.fragment.DeliveryFragment
import com.gingersoft.gsa.other_order_mode.ui.fragment.UpdateDeliveryFragment import com.gingersoft.gsa.other_order_mode.ui.fragment.UpdateDeliveryFragment
import io.ditclear.bindingadapter.SingleTypeAdapter
import kotlinx.android.synthetic.main.activity_delivery.* import kotlinx.android.synthetic.main.activity_delivery.*
class DeliverySettingActivity : BaseActivity() { class DeliverySettingActivity : BaseActivity() {
......
package com.gingersoft.gsa.other_order_mode.ui.activity package com.gingersoft.gsa.other_order_mode.ui.activity
import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import android.widget.TextView import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
...@@ -13,7 +14,6 @@ import com.ethanhua.skeleton.Skeleton ...@@ -13,7 +14,6 @@ import com.ethanhua.skeleton.Skeleton
import com.ethanhua.skeleton.ViewSkeletonScreen import com.ethanhua.skeleton.ViewSkeletonScreen
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.base.widget.DialogUtils
import com.gingersoft.gsa.cloud.print.bean.OrderDetails import com.gingersoft.gsa.cloud.print.bean.OrderDetails
import com.gingersoft.gsa.cloud.ui.utils.AppDialog import com.gingersoft.gsa.cloud.ui.utils.AppDialog
import com.gingersoft.gsa.other_order_mode.R import com.gingersoft.gsa.other_order_mode.R
...@@ -30,9 +30,6 @@ import com.gingersoft.gsa.other_order_mode.ui.base.BaseActivity ...@@ -30,9 +30,6 @@ import com.gingersoft.gsa.other_order_mode.ui.base.BaseActivity
import com.gingersoft.gsa.other_order_mode.util.InjectorUtil import com.gingersoft.gsa.other_order_mode.util.InjectorUtil
import com.qmuiteam.qmui.widget.QMUITopBar import com.qmuiteam.qmui.widget.QMUITopBar
import kotlinx.android.synthetic.main.activity_order_details.* import kotlinx.android.synthetic.main.activity_order_details.*
import kotlinx.android.synthetic.main.activity_order_details.rv_food
import kotlinx.android.synthetic.main.activity_order_details.tv_order_state
import kotlinx.android.synthetic.main.activity_order_details_loading.*
class OrderDetailsActivity : BaseActivity() { class OrderDetailsActivity : BaseActivity() {
...@@ -70,12 +67,14 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -70,12 +67,14 @@ class OrderDetailsActivity : BaseActivity() {
private fun initTopBar(topbar: QMUITopBar) { private fun initTopBar(topbar: QMUITopBar) {
topbar.setTitle(GsaCloudApplication.getRestaurantName(this@OrderDetailsActivity)) topbar.setTitle(GsaCloudApplication.getRestaurantName(this@OrderDetailsActivity))
topbar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener { finish() } topbar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener { finish() }
topbar.setBackgroundColor(resources.getColor(R.color.theme_color)) topbar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color))
} }
private fun PageViewModel.getOrderDetails(orderId: String, binding: ActivityOrderDetailsBinding) { private fun PageViewModel.getOrderDetails(orderId: String, binding: ActivityOrderDetailsBinding) {
getShipanyAndOrderInfo(GsaCloudApplication.getRestaurantId(this@OrderDetailsActivity).toString(), orderId) { it ->
skeletonScreen.hide() orderDetails.observe(this@OrderDetailsActivity, Observer {
skeletonScreen.hide()//隱藏骨架屏
Log.e("eee", "收到")
if (it?.data != null && it.data!!.isNotEmpty()) { if (it?.data != null && it.data!!.isNotEmpty()) {
val orderDetails = it.data!![0] val orderDetails = it.data!![0]
orderDetails.order_type = orderType orderDetails.order_type = orderType
...@@ -90,6 +89,7 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -90,6 +89,7 @@ class OrderDetailsActivity : BaseActivity() {
val orderStatusText: String val orderStatusText: String
val type = if (orderDetails.order_type == 7) "自取" else "外送" val type = if (orderDetails.order_type == 7) "自取" else "外送"
when (orderDetails.orderStatus) { when (orderDetails.orderStatus) {
2 -> {//製作中 2 -> {//製作中
btnList.add(BtnBuilder().getPrintBtn()) btnList.add(BtnBuilder().getPrintBtn())
...@@ -148,7 +148,6 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -148,7 +148,6 @@ class OrderDetailsActivity : BaseActivity() {
else -> "" else -> ""
} }
binding.orderStatus = type + orderStatusText binding.orderStatus = type + orderStatusText
binding.estimatedTime = orderDetails.estimatedTime
rv_food.layoutManager = LinearLayoutManager(this@OrderDetailsActivity) rv_food.layoutManager = LinearLayoutManager(this@OrderDetailsActivity)
rv_food.adapter = FoodListAdapter(this@OrderDetailsActivity, orderDetails.PRODUCT_NAME!!) rv_food.adapter = FoodListAdapter(this@OrderDetailsActivity, orderDetails.PRODUCT_NAME!!)
...@@ -160,6 +159,9 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -160,6 +159,9 @@ class OrderDetailsActivity : BaseActivity() {
} }
val orderBtnAdapter = OrderDetailsAdapter(btnList) val orderBtnAdapter = OrderDetailsAdapter(btnList)
rv_order_details_btn.adapter = orderBtnAdapter rv_order_details_btn.adapter = orderBtnAdapter
//--------------------------------------------------------------不同按鈕點擊事件----------------------------------------------------------------------------------------
orderBtnAdapter.setOnItemClickListener { adapter, view, position -> orderBtnAdapter.setOnItemClickListener { adapter, view, position ->
when (btnList[position].type) { when (btnList[position].type) {
BtnBuilder.logisticsBtn -> BtnBuilder.logisticsBtn ->
...@@ -171,26 +173,7 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -171,26 +173,7 @@ class OrderDetailsActivity : BaseActivity() {
BtnBuilder.cancelBtn -> BtnBuilder.cancelBtn ->
//取消訂單 //取消訂單
cancelOrder(orderDetails) cancelOrder(orderDetails)
BtnBuilder.closingBtn -> BtnBuilder.closingBtn -> {
//結賬,彈窗確認是否結賬
// 自取結賬,外賣結賬,第三方物流沒有結賬
// object : DialogUtils(this@OrderDetailsActivity, R.layout.other_order_pause_orders) {
// override fun initLayout(hepler: ViewHepler, dialog: Dialog) {
// hepler.setText(R.id.tv_warning_title, "是否確認結賬?")
// hepler.getView<TextView>(R.id.tv_dialog_confirm).setOnClickListener {
// dialog.dismiss()
// showLoading()
// gsUpdateOrderStatus(orderDetails.ID.toString(), orderDetails.order_type) { status, isSuccess ->
// cancelDialogForLoading()
// finish()
// }
// }
// hepler.getView<TextView>(R.id.tv_dialog_cancel).setOnClickListener {
// dialog.dismiss()
// }
// }
// }.show()
{
val intent = Intent(this@OrderDetailsActivity, PayActivity::class.java) val intent = Intent(this@OrderDetailsActivity, PayActivity::class.java)
intent.putExtra("orderDetails", orderDetails) intent.putExtra("orderDetails", orderDetails)
startActivityForResult(intent, 1001) startActivityForResult(intent, 1001)
...@@ -209,9 +192,9 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -209,9 +192,9 @@ class OrderDetailsActivity : BaseActivity() {
} }
SendCode -> { SendCode -> {
ToastUtils.show(this@OrderDetailsActivity, if (isSuccess) { ToastUtils.show(this@OrderDetailsActivity, if (isSuccess) {
"成功" "已成功指派"
} else { } else {
"失敗" "指派送貨失敗"
}) })
} }
OrderDelivery -> { OrderDelivery -> {
...@@ -252,7 +235,9 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -252,7 +235,9 @@ class OrderDetailsActivity : BaseActivity() {
ToastUtils.show(this@OrderDetailsActivity, "獲取訂單詳情失敗") ToastUtils.show(this@OrderDetailsActivity, "獲取訂單詳情失敗")
finish() finish()
} }
} })
getShipanyAndOrderInfo(GsaCloudApplication.getRestaurantId(this@OrderDetailsActivity).toString(), orderId)
} }
/** /**
...@@ -343,9 +328,9 @@ class OrderDetailsActivity : BaseActivity() { ...@@ -343,9 +328,9 @@ class OrderDetailsActivity : BaseActivity() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data) super.onActivityResult(requestCode, resultCode, data)
if(requestCode == 1001){ if (requestCode == 1001) {
//結賬頁面 //結賬頁面
if(resultCode == RESULT_OK){ if (resultCode == RESULT_OK) {
finish() finish()
} }
} }
......
...@@ -17,6 +17,7 @@ import android.util.Log ...@@ -17,6 +17,7 @@ import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
...@@ -40,7 +41,7 @@ import kotlinx.android.synthetic.main.activity_other_order.* ...@@ -40,7 +41,7 @@ import kotlinx.android.synthetic.main.activity_other_order.*
class OtherOrderActivity : BaseActivity() { class OtherOrderActivity : BaseActivity() {
private lateinit var pageViewModel: PageViewModel private val pageViewModel by lazy { ViewModelProvider(this, InjectorUtil.getWeatherModelFactory())[PageViewModel::class.java] }
private val instance by lazy { this } private val instance by lazy { this }
private val ints = arrayOf( private val ints = arrayOf(
...@@ -67,7 +68,6 @@ class OtherOrderActivity : BaseActivity() { ...@@ -67,7 +68,6 @@ class OtherOrderActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val binding: ActivityOtherOrderBinding = DataBindingUtil.setContentView(this, R.layout.activity_other_order) val binding: ActivityOtherOrderBinding = DataBindingUtil.setContentView(this, R.layout.activity_other_order)
pageViewModel = ViewModelProvider(this, InjectorUtil.getWeatherModelFactory())[PageViewModel::class.java]
initWebsocket() initWebsocket()
initAppTop() initAppTop()
...@@ -182,9 +182,6 @@ class OtherOrderActivity : BaseActivity() { ...@@ -182,9 +182,6 @@ class OtherOrderActivity : BaseActivity() {
private fun initSwitchRestStatus() { private fun initSwitchRestStatus() {
stateBg.cornerRadius = QMUIDisplayHelper.dp2px(this, 4).toFloat() stateBg.cornerRadius = QMUIDisplayHelper.dp2px(this, 4).toFloat()
btnOpenBg = resources.getDrawable(R.drawable.shape_white_bottom_border)
btnCloseBg = resources.getDrawable(R.drawable.shape_dialog_bg)
//切換營業狀態 //切換營業狀態
tv_restaurant_state.setOnClickListener { tv_restaurant_state.setOnClickListener {
if (restaurantPopup == null) { if (restaurantPopup == null) {
...@@ -226,19 +223,19 @@ class OtherOrderActivity : BaseActivity() { ...@@ -226,19 +223,19 @@ class OtherOrderActivity : BaseActivity() {
when (it) { when (it) {
0 -> { 0 -> {
tv_restaurant_state.text = "休息中" tv_restaurant_state.text = "休息中"
stateBg.setColor(resources.getColor(R.color.color_c8)) stateBg.setColor(ContextCompat.getColor(this, R.color.color_c8))
} }
1 -> { 1 -> {
tv_restaurant_state.text = "營業中" tv_restaurant_state.text = "營業中"
stateBg.setColor(resources.getColor(R.color.restaurant_color_open)) stateBg.setColor(ContextCompat.getColor(this, R.color.restaurant_color_open))
} }
2 -> { 2 -> {
tv_restaurant_state.text = "繁忙不接" tv_restaurant_state.text = "繁忙不接"
stateBg.setColor(resources.getColor(R.color.restaurant_color_busy_close)) stateBg.setColor(ContextCompat.getColor(this, R.color.restaurant_color_busy_close))
} }
3 -> { 3 -> {
tv_restaurant_state.text = "繁忙可接" tv_restaurant_state.text = "繁忙可接"
stateBg.setColor(resources.getColor(R.color.restaurant_color_busy_open)) stateBg.setColor(ContextCompat.getColor(this, R.color.restaurant_color_busy_open))
} }
} }
tv_restaurant_state.background = stateBg tv_restaurant_state.background = stateBg
...@@ -291,59 +288,59 @@ class OtherOrderActivity : BaseActivity() { ...@@ -291,59 +288,59 @@ class OtherOrderActivity : BaseActivity() {
} }
} }
private var soundPool: SoundPool? = null // private var soundPool: SoundPool? = null
fun initSoundPool() { // fun initSoundPool() {
//实例化SoundPool // //实例化SoundPool
//sdk版本21是SoundPool 的一个分水岭 // //sdk版本21是SoundPool 的一个分水岭
if (soundPool == null) { // if (soundPool == null) {
if (Build.VERSION.SDK_INT >= 21) { // if (Build.VERSION.SDK_INT >= 21) {
val builder = SoundPool.Builder() // val builder = SoundPool.Builder()
//传入最多播放音频数量, // //传入最多播放音频数量,
builder.setMaxStreams(1) // builder.setMaxStreams(1)
//AudioAttributes是一个封装音频各种属性的方法 // //AudioAttributes是一个封装音频各种属性的方法
val attrBuilder = AudioAttributes.Builder() // val attrBuilder = AudioAttributes.Builder()
//设置音频流的合适的属性 // //设置音频流的合适的属性
attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC) // attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC)
//加载一个AudioAttributes // //加载一个AudioAttributes
builder.setAudioAttributes(attrBuilder.build()) // builder.setAudioAttributes(attrBuilder.build())
soundPool = builder.build() // soundPool = builder.build()
} else { // } else {
/** // /**
* 第一个参数:int maxStreams:SoundPool对象的最大并发流数 // * 第一个参数:int maxStreams:SoundPool对象的最大并发流数
* 第二个参数:int streamType:AudioManager中描述的音频流类型 // * 第二个参数:int streamType:AudioManager中描述的音频流类型
*第三个参数:int srcQuality:采样率转换器的质量。 目前没有效果。 使用0作为默认值。 // *第三个参数:int srcQuality:采样率转换器的质量。 目前没有效果。 使用0作为默认值。
*/ // */
soundPool = SoundPool(1, AudioManager.STREAM_MUSIC, 0) // soundPool = SoundPool(1, AudioManager.STREAM_MUSIC, 0)
} // }
} // }
//可以通过四种途径来记载一个音频资源: // //可以通过四种途径来记载一个音频资源:
//1.通过一个AssetFileDescriptor对象 // //1.通过一个AssetFileDescriptor对象
//int load(AssetFileDescriptor afd, int priority) // //int load(AssetFileDescriptor afd, int priority)
//2.通过一个资源ID // //2.通过一个资源ID
//int load(Context context, int resId, int priority) // //int load(Context context, int resId, int priority)
//3.通过指定的路径加载 // //3.通过指定的路径加载
//int load(String path, int priority) // //int load(String path, int priority)
//4.通过FileDescriptor加载 // //4.通过FileDescriptor加载
//int load(FileDescriptor fd, long offset, long length, int priority) // //int load(FileDescriptor fd, long offset, long length, int priority)
//声音ID 加载音频资源,这里用的是第二种,第三个参数为priority,声音的优先级*API中指出,priority参数目前没有效果,建议设置为1。 // //声音ID 加载音频资源,这里用的是第二种,第三个参数为priority,声音的优先级*API中指出,priority参数目前没有效果,建议设置为1。
val voiceId = soundPool!!.load(this, R.raw.newordervocal, 1) // val voiceId = soundPool!!.load(this, R.raw.newordervocal, 1)
//异步需要等待加载完成,音频才能播放成功 // //异步需要等待加载完成,音频才能播放成功
soundPool!!.setOnLoadCompleteListener { soundPool, sampleId, status -> // soundPool!!.setOnLoadCompleteListener { soundPool, sampleId, status ->
if (status == 0) { // if (status == 0) {
//第一个参数soundID // //第一个参数soundID
//第二个参数leftVolume为左侧音量值(范围= 0.0到1.0) // //第二个参数leftVolume为左侧音量值(范围= 0.0到1.0)
//第三个参数rightVolume为右的音量值(范围= 0.0到1.0) // //第三个参数rightVolume为右的音量值(范围= 0.0到1.0)
//第四个参数priority 为流的优先级,值越大优先级高,影响当同时播放数量超出了最大支持数时SoundPool对该流的处理 // //第四个参数priority 为流的优先级,值越大优先级高,影响当同时播放数量超出了最大支持数时SoundPool对该流的处理
//第五个参数loop 为音频重复播放次数,0为值播放一次,-1为无限循环,其他值为播放loop+1次 // //第五个参数loop 为音频重复播放次数,0为值播放一次,-1为无限循环,其他值为播放loop+1次
//第六个参数 rate为播放的速率,范围0.5-2.0(0.5为一半速率,1.0为正常速率,2.0为两倍速率) // //第六个参数 rate为播放的速率,范围0.5-2.0(0.5为一半速率,1.0为正常速率,2.0为两倍速率)
soundPool.play(voiceId, 1f, 1f, 1, 0, 1f) // soundPool.play(voiceId, 1f, 1f, 1, 0, 1f)
} // }
} // }
} // }
private var isOpen: Boolean = true private var isOpen: Boolean = true
private lateinit var btnOpenBg: Drawable private val btnOpenBg by lazy { ContextCompat.getDrawable(this, R.drawable.shape_white_bottom_border)!! }
private lateinit var btnCloseBg: Drawable private val btnCloseBg by lazy { ContextCompat.getDrawable(this, R.drawable.shape_dialog_bg)!! }
/** /**
* 顯示或收起餐廳營業信息 * 顯示或收起餐廳營業信息
*/ */
......
...@@ -15,13 +15,11 @@ import com.gingersoft.gsa.other_order_mode.databinding.ItemDeliveryLayoutBinding ...@@ -15,13 +15,11 @@ import com.gingersoft.gsa.other_order_mode.databinding.ItemDeliveryLayoutBinding
class DeliveryListAdapter(val context: Context, data: List<DeliveryConfig.Data.DeliveryInfo>) : BaseQuickAdapter<DeliveryConfig.Data.DeliveryInfo, DeliveryListAdapter.ViewHolder>(data) { class DeliveryListAdapter(val context: Context, data: List<DeliveryConfig.Data.DeliveryInfo>) : BaseQuickAdapter<DeliveryConfig.Data.DeliveryInfo, DeliveryListAdapter.ViewHolder>(data) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_delivery_layout, null) val view = LayoutInflater.from(parent.context).inflate(R.layout.item_delivery_layout, null)
return ViewHolder(view) return ViewHolder(view)
} }
override fun convert(helper: ViewHolder?, item: DeliveryConfig.Data.DeliveryInfo?) { override fun convert(helper: ViewHolder?, item: DeliveryConfig.Data.DeliveryInfo?) {
helper?.let { helper -> helper?.let { helper ->
helper.binding.apply { helper.binding.apply {
......
...@@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView ...@@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.Adapter import androidx.recyclerview.widget.RecyclerView.Adapter
import com.gingersoft.gsa.other_order_mode.R import com.gingersoft.gsa.other_order_mode.R
import com.gingersoft.gsa.other_order_mode.data.model.bean.OrderList import com.gingersoft.gsa.other_order_mode.data.model.bean.OrderList
import com.gingersoft.gsa.other_order_mode.databinding.LayoutOtherOrderItemBinding
import com.gingersoft.gsa.other_order_mode.databinding.LayoutOtherOrderItemNewBinding import com.gingersoft.gsa.other_order_mode.databinding.LayoutOtherOrderItemNewBinding
import com.scwang.smartrefresh.layout.util.SmartUtil.dp2px import com.scwang.smartrefresh.layout.util.SmartUtil.dp2px
......
...@@ -3,7 +3,10 @@ package com.gingersoft.gsa.other_order_mode.ui.base ...@@ -3,7 +3,10 @@ package com.gingersoft.gsa.other_order_mode.ui.base
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
open class BaseFragment : Fragment() { open class BaseFragment(contentLayoutId: Int) : Fragment(contentLayoutId) {
constructor() : this(0)
fun showLoading(message: String? = null) { fun showLoading(message: String? = null) {
if (message != null) if (message != null)
LoadingDialog.showDialogForLoading(activity, message, true) LoadingDialog.showDialogForLoading(activity, message, true)
......
package com.gingersoft.gsa.other_order_mode.ui.fragment package com.gingersoft.gsa.other_order_mode.ui.fragment
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button import android.widget.Button
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
...@@ -18,35 +16,32 @@ import com.gingersoft.gsa.other_order_mode.ui.activity.DeliverySettingActivity ...@@ -18,35 +16,32 @@ import com.gingersoft.gsa.other_order_mode.ui.activity.DeliverySettingActivity
import com.gingersoft.gsa.other_order_mode.ui.adapter.DeliveryListAdapter import com.gingersoft.gsa.other_order_mode.ui.adapter.DeliveryListAdapter
import com.gingersoft.gsa.other_order_mode.ui.base.BaseFragment import com.gingersoft.gsa.other_order_mode.ui.base.BaseFragment
import com.gingersoft.gsa.other_order_mode.util.InjectorUtil import com.gingersoft.gsa.other_order_mode.util.InjectorUtil
import com.gingersoft.gsa.other_order_mode.util.setState
import kotlinx.android.synthetic.main.fragment_delivery_list.* import kotlinx.android.synthetic.main.fragment_delivery_list.*
class DeliveryFragment : BaseFragment() { class DeliveryFragment : BaseFragment() {
companion object {
fun newInstance() = DeliveryFragment()
}
var deliveryListAdapter: DeliveryListAdapter? = null var deliveryListAdapter: DeliveryListAdapter? = null
private lateinit var viewModel: DeliveryViewModel private val viewModel by lazy { ViewModelProvider(activity?.viewModelStore!!, InjectorUtil.getDeliveryFactory())[DeliveryViewModel::class.java] }
private lateinit var contentView:View
private lateinit var addBtn: Button private lateinit var addBtn: Button
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? { savedInstanceState: Bundle?): View? {
val contentView = inflater.inflate(R.layout.fragment_delivery_list, container, false)
contentView = inflater.inflate(R.layout.fragment_delivery_list, container, false)
addBtn = contentView.findViewById(R.id.btn_default) addBtn = contentView.findViewById(R.id.btn_default)
return contentView return contentView
} }
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(activity?.viewModelStore!!, InjectorUtil.getDeliveryFactory())[DeliveryViewModel::class.java] // childFragmentManager.beginTransaction().remove(this).add(null, "").addToBackStack(null).commit()
addBtn.text = "+添加配送方式" addBtn.text = "+添加配送方式"
addBtn.setOnClickListener{ addBtn.setOnClickListener {
(activity as DeliverySettingActivity).editDelivery(null) (activity as DeliverySettingActivity).editDelivery(null)
} }
viewModel.otherInfo.observe(viewLifecycleOwner, Observer { it -> viewModel.otherInfo.observe(viewLifecycleOwner, Observer { it ->
if (it?.data?.list != null && it.data.list.isNotEmpty()) { if (it?.data?.list != null && it.data.list.isNotEmpty()) {
if (deliveryListAdapter == null) { if (deliveryListAdapter == null) {
...@@ -62,7 +57,7 @@ class DeliveryFragment : BaseFragment() { ...@@ -62,7 +57,7 @@ class DeliveryFragment : BaseFragment() {
AppDialog().showWaringDialog(context, "是否確認刪除") { _, dialog -> AppDialog().showWaringDialog(context, "是否確認刪除") { _, dialog ->
showLoading() showLoading()
it.data.list[position].apply { it.data.list[position].apply {
viewModel.updateDeliveryConfig(distributionFeeMin.toString(), distributionFeeMax.toString(), distributionFee.toString(), deliveryCost.toString(), distributionType, type, desc, id, GsaCloudApplication.getRestaurantId(context), GsaCloudApplication.getMemberId(context), lackPrice.toString(), 1) { viewModel.updateDeliveryConfig(distributionFeeMin.toString(), distributionFeeMax.toString(), distributionFee.toString(), deliveryCost.toString(), distributionType, type, desc, id, GsaCloudApplication.getRestaurantId(context), GsaCloudApplication.getMemberId(context), lackPrice.toString(), 1) {
dialog.dismiss() dialog.dismiss()
cancelDialogForLoading() cancelDialogForLoading()
} }
...@@ -74,13 +69,9 @@ class DeliveryFragment : BaseFragment() { ...@@ -74,13 +69,9 @@ class DeliveryFragment : BaseFragment() {
}//查看詳情---編輯 }//查看詳情---編輯
} }
} }
rv_delivery?.let { rv_delivery.setState(true)
it.visibility = View.VISIBLE
}
} else { } else {
rv_delivery?.let { rv_delivery.setState(false)
it.visibility = View.GONE
}
} }
}) })
......
...@@ -19,7 +19,7 @@ import com.gingersoft.gsa.other_order_mode.util.OtherOrderUtils ...@@ -19,7 +19,7 @@ import com.gingersoft.gsa.other_order_mode.util.OtherOrderUtils
import com.gingersoft.gsa.other_order_mode.util.setState import com.gingersoft.gsa.other_order_mode.util.setState
import kotlinx.android.synthetic.main.fragment_other_order.* import kotlinx.android.synthetic.main.fragment_other_order.*
class HistoryFragment : BaseFragment() { class HistoryFragment : BaseFragment(R.layout.fragment_other_order) {
companion object { companion object {
fun newInstance() = HistoryFragment() fun newInstance() = HistoryFragment()
...@@ -30,12 +30,6 @@ class HistoryFragment : BaseFragment() { ...@@ -30,12 +30,6 @@ class HistoryFragment : BaseFragment() {
private var pageIndex = 1 private var pageIndex = 1
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_other_order, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) { override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState) super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProvider(activity!!.viewModelStore, InjectorUtil.getHistoryModelFactory())[HistoryOrderViewModel::class.java].apply { viewModel = ViewModelProvider(activity!!.viewModelStore, InjectorUtil.getHistoryModelFactory())[HistoryOrderViewModel::class.java].apply {
......
...@@ -29,7 +29,7 @@ import kotlin.String as String1 ...@@ -29,7 +29,7 @@ import kotlin.String as String1
/** /**
* A placeholder fragment containing a simple view. * A placeholder fragment containing a simple view.
*/ */
class PlaceholderFragment : BaseFragment() { class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
private lateinit var pageViewModel: PageViewModel private lateinit var pageViewModel: PageViewModel
private var page = 1 private var page = 1
...@@ -158,18 +158,13 @@ class PlaceholderFragment : BaseFragment() { ...@@ -158,18 +158,13 @@ class PlaceholderFragment : BaseFragment() {
getOrderList(pageViewModel, false) getOrderList(pageViewModel, false)
} }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_other_order, container, false)
}
private fun getOrderList(pageViewModel: PageViewModel, isLoadMore: Boolean) { private fun getOrderList(pageViewModel: PageViewModel, isLoadMore: Boolean) {
pageViewModel.getOrderList(activity!!, arguments?.getInt(INDEX) pageViewModel.getOrderList(activity!!, arguments?.getInt(INDEX)
?: 0, page.toString(), isLoadMore) { ?: 0, page.toString(), isLoadMore) {
// if (!isLoadMore) { if (refresh_layout != null) {
// layout_nodata.setState(it <= 0) refresh_layout.finishRefresh()
// } refresh_layout.finishLoadMore()
refresh_layout.finishRefresh() }
refresh_layout.finishLoadMore()
} }
} }
......
...@@ -25,7 +25,7 @@ import com.zhy.autolayout.utils.ScreenUtils ...@@ -25,7 +25,7 @@ import com.zhy.autolayout.utils.ScreenUtils
import kotlinx.android.synthetic.main.update_delivery_fragment.* import kotlinx.android.synthetic.main.update_delivery_fragment.*
import org.w3c.dom.Text import org.w3c.dom.Text
class UpdateDeliveryFragment : BaseFragment() { class UpdateDeliveryFragment : BaseFragment(R.layout.update_delivery_fragment) {
companion object { companion object {
private const val info = "info" private const val info = "info"
...@@ -42,12 +42,6 @@ class UpdateDeliveryFragment : BaseFragment() { ...@@ -42,12 +42,6 @@ class UpdateDeliveryFragment : BaseFragment() {
private lateinit var viewModel: DeliveryViewModel private lateinit var viewModel: DeliveryViewModel
var deliveryConfig: DeliveryConfig.Data.DeliveryInfo? = null var deliveryConfig: DeliveryConfig.Data.DeliveryInfo? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.update_delivery_fragment, container, false)
}
var pop: QMUIPopup? = null var pop: QMUIPopup? = null
var deliveryType = arrayListOf("短途送", "中途送", "長途送") var deliveryType = arrayListOf("短途送", "中途送", "長途送")
var deliveryMethod = arrayListOf("本店配送", "第三方") var deliveryMethod = arrayListOf("本店配送", "第三方")
......
package com.gingersoft.gsa.other_order_mode.util package com.gingersoft.gsa.other_order_mode.util
import android.content.Context
import android.graphics.drawable.Drawable
import android.view.View import android.view.View
fun View.setState(state: Boolean) { fun View.setState(state: Boolean) {
...@@ -12,7 +10,3 @@ fun View.setState(state: Boolean) { ...@@ -12,7 +10,3 @@ fun View.setState(state: Boolean) {
} }
} }
fun Context.getDrawable(drawable: Int): Drawable {
return this.resources.getDrawable(drawable)
}
\ No newline at end of file
...@@ -39,9 +39,6 @@ ...@@ -39,9 +39,6 @@
name="patMethod" name="patMethod"
type="String" /> type="String" />
<variable
name="estimatedTime"
type="String" />
</data> </data>
<RelativeLayout <RelativeLayout
...@@ -107,9 +104,7 @@ ...@@ -107,9 +104,7 @@
android:layout_margin="@dimen/other_order_info_dialog_content_marginRight" android:layout_margin="@dimen/other_order_info_dialog_content_marginRight"
android:text="@{orderStatus}" android:text="@{orderStatus}"
android:textColor="#009788" android:textColor="#009788"
android:textSize="@dimen/dp_15" android:textSize="@dimen/dp_15" />
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</RelativeLayout> </RelativeLayout>
<include layout="@layout/include_horizontal_color_eee_dividing_line" /> <include layout="@layout/include_horizontal_color_eee_dividing_line" />
...@@ -122,20 +117,26 @@ ...@@ -122,20 +117,26 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/other_order_info_dialog_content_marginLeft" android:layout_margin="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:text="@{@string/order_no + data.oRDER_NO}" android:text="@{@string/order_no + data.oRDER_NO}" />
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_order_num" />
<TextView <TextView
android:id="@+id/tv_create_time" android:id="@+id/tv_create_time"
style="@style/otherOrder_details_twelve_text_Style" style="@style/otherOrder_details_twelve_text_Style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:text="@{@string/create_order_time + TimeUtils.parseTimeRepeat(data.cREATE_TIME,TimeUtils.DEFAULT_DATE_FORMAT)}" />
<TextView
style="@style/otherOrder_details_twelve_text_Style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft" android:layout_marginLeft="@dimen/other_order_info_dialog_content_marginLeft"
android:text="@{@string/create_order_time + TimeUtils.parseTimeRepeat(data.cREATE_TIME,TimeUtils.DEFAULT_DATE_FORMAT)}" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintLeft_toLeftOf="parent" android:layout_marginRight="@dimen/other_order_info_dialog_content_marginRight"
app:layout_constraintTop_toBottomOf="@id/tv_order_no" /> android:text="@{data.estimatedTime}"
android:visibility="@{data.estimatedTime.length()>0?View.VISIBLE:View.GONE}" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
...@@ -372,8 +373,8 @@ ...@@ -372,8 +373,8 @@
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:background="@drawable/shape_dialog_bg"
android:layout_marginBottom="@dimen/dp_10" android:layout_marginBottom="@dimen/dp_10"
android:background="@drawable/shape_dialog_bg"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="@dimen/dp_10"> android:paddingBottom="@dimen/dp_10">
......
...@@ -17,4 +17,5 @@ ...@@ -17,4 +17,5 @@
android:id="@+id/layout_nodata" android:id="@+id/layout_nodata"
layout="@layout/layout_no_data" /> layout="@layout/layout_no_data" />
</FrameLayout> </FrameLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout> </com.scwang.smartrefresh.layout.SmartRefreshLayout>
...@@ -167,10 +167,6 @@ ...@@ -167,10 +167,6 @@
android:textColor="#EC2D2D" android:textColor="#EC2D2D"
android:textSize="@dimen/dp_12" android:textSize="@dimen/dp_12"
android:visibility="visible" android:visibility="visible"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintLeft_toLeftOf="@id/tv_order_user_name"
app:layout_constraintRight_toLeftOf="@id/barrier_order_right_line"
app:layout_constraintTop_toBottomOf="@id/tv_order_user_name"
tools:text="送達時間Adasd奧術大師大所多啊實打實大啊實打實大阿薩德" tools:text="送達時間Adasd奧術大師大所多啊實打實大啊實打實大阿薩德"
tools:textColor="@color/theme_333_color" /> tools:textColor="@color/theme_333_color" />
......
...@@ -70,6 +70,9 @@ public class PrjBean { ...@@ -70,6 +70,9 @@ public class PrjBean {
private int type; private int type;
private int printerType; private int printerType;
private Long printerTime; private Long printerTime;
private String number;
private String productId;
private Long createTime;
/*** /***
* 層級 * 層級
* 1:主食品 * 1:主食品
......
...@@ -56,9 +56,13 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -56,9 +56,13 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
//讀取本地ip打印機 //讀取本地ip打印機
PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this); Log.e("eee", "開啟打印服務");
printerDeviceBeans = printerDeviceDaoUtils.queryAllPrinterDeviceBean(); // if (printerDeviceBeans == null) {
//開始請求 // PrinterDeviceDaoUtils printerDeviceDaoUtils = new PrinterDeviceDaoUtils(this);
// printerDeviceBeans = printerDeviceDaoUtils.queryAllPrinterDeviceBean();
// printerDeviceDaoUtils.closeConnection();
// }
// //開始請求
// startGetPrjInfo(); // startGetPrjInfo();
} }
...@@ -75,7 +79,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -75,7 +79,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
if (wakeDisposable != null && !wakeDisposable.isDisposed()) { if (wakeDisposable != null && !wakeDisposable.isDisposed()) {
wakeDisposable.dispose(); wakeDisposable.dispose();
} }
Observable.interval(5, 10, TimeUnit.SECONDS) Observable.interval(5, 30, TimeUnit.SECONDS)
.subscribe(new Observer<Long>() { .subscribe(new Observer<Long>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
...@@ -104,7 +108,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -104,7 +108,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
* 請求prj數據 * 請求prj數據
*/ */
private void getPrjInfo() { private void getPrjInfo() {
OkHttp3Utils.get(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "prg/get?restaurantId=" + GsaCloudApplication.getRestaurantId(this)) OkHttp3Utils.get(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "printerRecording/get?restaurantId=" + GsaCloudApplication.getRestaurantId(this))
.subscribeOn(Schedulers.io())//切换到io线程進行網絡請求 .subscribeOn(Schedulers.io())//切换到io线程進行網絡請求
.observeOn(AndroidSchedulers.mainThread())//切換到主線程處理請求結果 .observeOn(AndroidSchedulers.mainThread())//切換到主線程處理請求結果
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
...@@ -116,6 +120,8 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -116,6 +120,8 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
@Override @Override
public void onNext(String s) { public void onNext(String s) {
Log.e("eee", "請求到PRJ數據:" + s);
//請求到數據,停止輪詢,開始打印,在打印完之後再重新開始輪詢 //請求到數據,停止輪詢,開始打印,在打印完之後再重新開始輪詢
startPrint(s); startPrint(s);
//開啟另一個定時,三十秒之後自動請求,避免上面的打印成功或失敗時沒有回調。 //開啟另一個定時,三十秒之後自動請求,避免上面的打印成功或失敗時沒有回調。
...@@ -171,7 +177,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -171,7 +177,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
private void startPrint(String json) { private void startPrint(String json) {
printDatas.clear(); printDatas.clear();
PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class); PrjBean prjBean = JsonUtils.parseObject(json, PrjBean.class);
if (prjBean.getData() == null) { if (prjBean == null || prjBean.getData() == null) {
return; return;
} }
try { try {
...@@ -187,6 +193,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -187,6 +193,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
// if (key.equals("-1")) { // if (key.equals("-1")) {
// PrintPrjKitchen.getPrjMap().put("", datas); // PrintPrjKitchen.getPrjMap().put("", datas);
// } else { // } else {
Log.e("eee", "打印數據條數:" + datas.size());
PrintPrjKitchen.getPrjMap().put(key, datas); PrintPrjKitchen.getPrjMap().put(key, datas);
// } // }
printDatas.addAll(datas); printDatas.addAll(datas);
...@@ -194,11 +201,13 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -194,11 +201,13 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }
// updatePrjState(3);
if (printerInIt == null) { if (printerInIt == null) {
printerInIt = PrinterRoot.getPrinterByType(PRINT_KITCHEN); printerInIt = PrinterRoot.getPrinterByType(PRINT_KITCHEN);
} }
if (printerInIt != null) { if (printerInIt != null) {
printerInIt.setmContext(this); printerInIt.setmContext(this);
for (Map.Entry<String, List<Bitmap>> entry : printerInIt.getPrintBitmap(this).entrySet()) { for (Map.Entry<String, List<Bitmap>> entry : printerInIt.getPrintBitmap(this).entrySet()) {
//遍歷所有的需要打印的內容 //遍歷所有的需要打印的內容
for (int i = 0; i < printerDeviceBeans.size(); i++) { for (int i = 0; i < printerDeviceBeans.size(); i++) {
...@@ -223,15 +232,19 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -223,15 +232,19 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
if (printState == 3) { if (printState == 3) {
time = TimeUtils.getCurrentTimeInLong(); time = TimeUtils.getCurrentTimeInLong();
} }
for (int i = 0; i < printDatas.size(); i++) {
printDatas.get(i).setPrinterType(printState); List<UpdateBean> updateBeans = new ArrayList<>();
printDatas.get(i).setPrinterTime(time); for (PrjBean.DataBean.Bean bean : printDatas) {
updateBeans.add(new UpdateBean(String.valueOf(bean.getId()), printState, time));
} }
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), JsonUtils.toJson(printDatas)); String json = JsonUtils.toJson(updateBeans);
Log.e("eee", "" + json);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), json);
//打印過後,直接再讀數據,不用管是否已更新狀態。 //打印過後,直接再讀數據,不用管是否已更新狀態。
startGetPrjInfo(); startGetPrjInfo();
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "prg/update", requestBody) OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "printerRecording/update", requestBody)
.subscribeOn(Schedulers.io())//切换到io线程進行網絡請求 .subscribeOn(Schedulers.io())//切换到io线程進行網絡請求
.observeOn(AndroidSchedulers.mainThread())//切換到主線程處理請求結果 .observeOn(AndroidSchedulers.mainThread())//切換到主線程處理請求結果
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
...@@ -243,6 +256,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -243,6 +256,7 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
@Override @Override
public void onNext(String s) { public void onNext(String s) {
Log.e("eee", "修改打印狀態:" + s);
} }
@Override @Override
...@@ -261,46 +275,36 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -261,46 +275,36 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
String tip = "加載中"; String tip = "加載中";
switch (state) { switch (state) {
case PrintSocketHolder.ERROR_0: case PrintSocketHolder.ERROR_0:
// Log.e("eee", "打印成功");
tip = "打印成功"; tip = "打印成功";
break; break;
case PrintSocketHolder.ERROR_1: case PrintSocketHolder.ERROR_1:
// Log.e("eee", "生成測試頁面數據失敗");
tip = "生成打印數據失敗"; tip = "生成打印數據失敗";
break; break;
case PrintSocketHolder.ERROR_2: case PrintSocketHolder.ERROR_2:
// Log.e("eee", "連接打印機失敗" + System.currentTimeMillis());
case PrintSocketHolder.ERROR_3: case PrintSocketHolder.ERROR_3:
// Log.e("eee", "獲取輸出流失敗");
tip = "連接打印機失敗"; tip = "連接打印機失敗";
break; break;
case PrintSocketHolder.ERROR_4: case PrintSocketHolder.ERROR_4:
// Log.e("eee", "寫入測試頁面數據失敗");
tip = "寫入測試頁面數據失敗"; tip = "寫入測試頁面數據失敗";
break; break;
case PrintSocketHolder.ERROR_5: case PrintSocketHolder.ERROR_5:
// Log.e("eee", "必要的參數不能為空");
tip = "必要的參數不能為空"; tip = "必要的參數不能為空";
break; break;
case PrintSocketHolder.STATE_0: case PrintSocketHolder.STATE_0:
// Log.e("eee", "生成測試頁數據");
case PrintSocketHolder.STATE_1: case PrintSocketHolder.STATE_1:
// Log.e("eee", "開始創建連接");
tip = "開始創建連接"; tip = "開始創建連接";
break; break;
case PrintSocketHolder.STATE_2: case PrintSocketHolder.STATE_2:
// Log.e("eee", "創建連接成功,開始發送數據");
tip = "創建連接成功,開始發送數據"; tip = "創建連接成功,開始發送數據";
break; break;
case PrintSocketHolder.STATE_3: case PrintSocketHolder.STATE_3:
// Log.e("eee", "開始寫入數據");
tip = "開始寫入數據"; tip = "開始寫入數據";
break; break;
case PrintSocketHolder.STATE_4: case PrintSocketHolder.STATE_4:
// Log.e("eee", "關閉中");
tip = "關閉中"; tip = "關閉中";
break; break;
} }
Log.e("eee", "打印機狀態:" + tip);
} }
@Override @Override
...@@ -309,19 +313,60 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan ...@@ -309,19 +313,60 @@ public class PrjService extends Service implements PrintSocketHolder.OnStateChan
case PrintSocketHolder.ERROR_0: case PrintSocketHolder.ERROR_0:
//更新狀態 //更新狀態
updatePrjState(3); updatePrjState(3);
Log.e("eee", "打印成功");
break; break;
case PrintSocketHolder.ERROR_1: case PrintSocketHolder.ERROR_1:
break; break;
case PrintSocketHolder.ERROR_2: case PrintSocketHolder.ERROR_2:
Log.e("eee", "创建Socket失败");
//再次打開輪詢 //再次打開輪詢
updatePrjState(1); updatePrjState(4);
case PrintSocketHolder.ERROR_3: case PrintSocketHolder.ERROR_3:
Log.e("eee", "获取输出流失败");
break; break;
case PrintSocketHolder.ERROR_4: case PrintSocketHolder.ERROR_4:
Log.e("eee", "写入测试页面数据失败");
break; break;
case PrintSocketHolder.ERROR_5: case PrintSocketHolder.ERROR_5:
Log.e("eee", "必要参数不能为空");
break; break;
} }
} }
public class UpdateBean {
private String id;
private int printerType;
private Long printerTime;
public UpdateBean(String id, int printerType, Long printerTime) {
this.id = id;
this.printerType = printerType;
this.printerTime = printerTime;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getPrinterType() {
return printerType;
}
public void setPrinterType(int printerType) {
this.printerType = printerType;
}
public Long getPrinterTime() {
return printerTime;
}
public void setPrinterTime(Long printerTime) {
this.printerTime = printerTime;
}
}
} }
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_weight="0.7" android:layout_weight="0.7"
android:background="@null" android:background="@null"
android:digits="@string/edit_digits_number_words"
android:hint="請輸入打印機名稱" android:hint="請輸入打印機名稱"
android:maxLength="20" android:maxLength="20"
android:singleLine="true" android:singleLine="true"
......
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