Commit cd58cb90 by 宁斌

新增賬單列表,賬單詳情頁面

parent 1305e525
...@@ -810,21 +810,36 @@ public class DeviceUtils { ...@@ -810,21 +810,36 @@ public class DeviceUtils {
} }
public static boolean netIsConnected(Context context) { public static boolean netIsConnected(Context context) {
ConnectivityManager connectMgr = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); // ConnectivityManager connectMgr = (ConnectivityManager) context.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
//手机网络连接状态 // //手机网络连接状态
NetworkInfo mobNetInfo = null; // NetworkInfo mobNetInfo = null;
try { // try {
mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); // mobNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
} catch (SecurityException e) { // } catch (SecurityException e) {
e.printStackTrace(); // e.printStackTrace();
// }
// //WIFI连接状态
// NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
// if (mobNetInfo != null && !mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
// //当前无可用的网络
// return false;
// }
// return true;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm == null) {
} else {
//如果仅仅是用来判断网络连接
//则可以使用 cm.getActiveNetworkInfo().isAvailable();
NetworkInfo[] info = cm.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
} }
//WIFI连接状态
NetworkInfo wifiNetInfo = connectMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (mobNetInfo != null && !mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
//当前无可用的网络
return false;
} }
return true; }
}
return false;
} }
/** /**
......
...@@ -51,9 +51,9 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -51,9 +51,9 @@ public class GsaCloudApplication extends BaseApplication {
private static GsaCloudApplication mAppContext; private static GsaCloudApplication mAppContext;
private Activity mCurrentActivity; private Activity mCurrentActivity;
/** /**
* 设置请求超时默认20秒钟 从后台获取超时时间 * 设置请求超时默认15秒钟
*/ */
public static int REQUEST_TIMEOUT = 20; public static int REQUEST_TIMEOUT = 15;
public static boolean isLogin = false; public static boolean isLogin = false;
public static CurrentAndroidSetting androidSetting; public static CurrentAndroidSetting androidSetting;
......
...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.base.common.bean; ...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.base.common.bean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -106,9 +108,11 @@ public class OrderBean { ...@@ -106,9 +108,11 @@ public class OrderBean {
this.orderDetails = orderDetails; this.orderDetails = orderDetails;
} }
public static class OrderDetailsBean { public static class OrderDetailsBean implements Serializable {
/** /**
* id : 1621502 * id : 1621502
* orderId : 47039
* parentId : 1639956
* productName : 胡椒排骨涼瓜煲 * productName : 胡椒排骨涼瓜煲
* productId : 4257 * productId : 4257
* price : 58.0 * price : 58.0
...@@ -138,8 +142,7 @@ public class OrderBean { ...@@ -138,8 +142,7 @@ public class OrderBean {
} }
public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice, public OrderDetailsBean(String productName, long productId,long parentId, double price, double lunchboxPrice, int number,byte type, long orderId) {
int number,byte type, long orderId) {
this.productName = productName; this.productName = productName;
this.productId = productId; this.productId = productId;
this.parentId = parentId; this.parentId = parentId;
......
...@@ -509,7 +509,7 @@ public class OrderDetail implements Serializable { ...@@ -509,7 +509,7 @@ public class OrderDetail implements Serializable {
orderDetail.setParentId(orderDetailsBean.getParentId()); orderDetail.setParentId(orderDetailsBean.getParentId());
orderDetail.setProductName(orderDetailsBean.getProductName()); orderDetail.setProductName(orderDetailsBean.getProductName());
orderDetail.setNumber(orderDetailsBean.getNumber()); orderDetail.setNumber(orderDetailsBean.getNumber());
orderDetail.setPrice(orderDetailsBean.getPrice()); orderDetail.setPrice(orderDetailsBean.getPrice() * orderDetailsBean.getNumber());
orderDetail.setVisible(orderDetailsBean.getStatus() == 0); orderDetail.setVisible(orderDetailsBean.getStatus() == 0);
// orderDetail.setAutomod(foods.getAutomod()); // orderDetail.setAutomod(foods.getAutomod());
orderDetail.setIsfood(orderDetailsBean.getType() == FOOD_TYPE ? true : false); orderDetail.setIsfood(orderDetailsBean.getType() == FOOD_TYPE ? true : false);
...@@ -589,7 +589,7 @@ public class OrderDetail implements Serializable { ...@@ -589,7 +589,7 @@ public class OrderDetail implements Serializable {
* @param isRvMealClicked * @param isRvMealClicked
* @return * @return
*/ */
public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, long id,int number, String prop, boolean isRvMealClicked) { public static OrderDetail comboTransOrderDetail(ComboItem foodCombo, long id, int number, String prop, boolean isRvMealClicked) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foodCombo.getName()); orderDetail.setProductName(foodCombo.getName());
if (foodCombo.getFid() != null) { if (foodCombo.getFid() != null) {
...@@ -626,7 +626,7 @@ public class OrderDetail implements Serializable { ...@@ -626,7 +626,7 @@ public class OrderDetail implements Serializable {
* @param number * @param number
* @return * @return
*/ */
public static OrderDetail modifierTransOrderDetail(Modifier modifier,long id, int number) { public static OrderDetail modifierTransOrderDetail(Modifier modifier, long id, int number) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(modifier.getModifierName()); orderDetail.setProductName(modifier.getModifierName());
orderDetail.setTopId(modifier.getFid()); orderDetail.setTopId(modifier.getFid());
......
...@@ -9,7 +9,9 @@ public class AppConstans { ...@@ -9,7 +9,9 @@ public class AppConstans {
public static final String APP_TYPE = "9"; public static final String APP_TYPE = "9";
public static final String VIBRATION_PROGRESS = "vibration_progress";//震动强度 public static final String VIBRATION_PROGRESS = "vibration_progress";//震动强度
public static final String PRESSSOUND_PROGRESS = "presssound_progress";//按键音量 public static final String PRESSSOUND_PROGRESS = "presssound_progress";//按键音量
} }
...@@ -12,5 +12,4 @@ public class Constans { ...@@ -12,5 +12,4 @@ public class Constans {
} }
...@@ -85,18 +85,14 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -85,18 +85,14 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
**/ **/
private String ErrorStr = "發生錯誤, 請聯絡支援人員!"; private String ErrorStr = "發生錯誤, 請聯絡支援人員!";
/** /**
* 使用Properties来保存设备的信息和错误堆栈信息
*/
private static final String VERSION_NAME = "versionName";
private static final String VERSION_CODE = "versionCode";
private static final String STACK_TRACE = "STACK_TRACE";
/**
* 错误报告文件的扩展名 * 错误报告文件的扩展名
*/ */
private static final String CRASH_REPORTER_EXTENSION = ".cyposdebug"; private static final String CRASH_REPORTER_EXTENSION = ".json";
private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");// 用于格式化日期,作为日志文件名的一部分 // 用于格式化日期,作为日志文件名的一部分
private Map<String, String> info = new HashMap<String, String>();// 用来存储设备信息和异常信息 private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
// 用来存储设备信息和异常信息
private Map<String, String> info = new HashMap<>();
/** /**
* 保证只有一个CrashHandler实例 * 保证只有一个CrashHandler实例
...@@ -125,7 +121,6 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -125,7 +121,6 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
mContext = ctx; mContext = ctx;
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler(); mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this); Thread.setDefaultUncaughtExceptionHandler(this);
File file = new File(FileUtils.ERRORLOG_PATH); File file = new File(FileUtils.ERRORLOG_PATH);
if (file.exists()) { if (file.exists()) {
sendCrashReportsToServer(); sendCrashReportsToServer();
...@@ -206,14 +201,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -206,14 +201,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
File file = new File(FileUtils.ERRORLOG_PATH); File file = new File(FileUtils.ERRORLOG_PATH);
File[] files = file.listFiles(); File[] files = file.listFiles();
if (files != null && files.length > 0) { if (files != null && files.length > 0) {
// List<File> fileList = Arrays.asList(files); List<File> fileList = Arrays.asList(files);
List<File> fileList = new ArrayList<>();
fileList.add(files[0]);
HashMap<String, String> params = new HashMap<>(); HashMap<String, String> params = new HashMap<>();
params.put("type", "1"); params.put("type", "1");
params.put("uid", String.valueOf(GsaCloudApplication.getMemberId(mContext))); params.put("uid", String.valueOf(GsaCloudApplication.getMemberId(mContext)));
String url = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.upload_app_log; String url = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.upload_app_log;
OkHttp3Utils.sendFileMultipart(url, "files", fileList, params) OkHttp3Utils.sendFileMultipart(url, "files", fileList, params)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -230,10 +221,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -230,10 +221,10 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
BaseResult result = JsonUtils.parseObject(data, BaseResult.class); BaseResult result = JsonUtils.parseObject(data, BaseResult.class);
if (result.isSuccess()) { if (result.isSuccess()) {
//上傳成功后刪除對應文件 //上傳成功后刪除對應文件
// for (File dfile : file.listFiles()) { for (File dfile : file.listFiles()) {
// boolean result = dfile.delete(); boolean delete = dfile.delete();
// LogUtil.d(TAG, "delete result : " + result); LogUtil.d(TAG, "delete result : " + delete);
// } }
} }
XLog.d(TAG, "sendFileMultipart onNext: " + data); XLog.d(TAG, "sendFileMultipart onNext: " + data);
} }
...@@ -273,7 +264,7 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -273,7 +264,7 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
long timetamp = System.currentTimeMillis(); long timetamp = System.currentTimeMillis();
String time = format.format(new Date()); String time = format.format(new Date());
String MemberName = GsaCloudApplication.getMemberName(mContext); String MemberName = GsaCloudApplication.getMemberName(mContext);
String fileName = "crash-" + MemberName + "-" + time + "-" + timetamp + "-" + DeviceUtils.getVersionName(mContext) + ".xml"; String fileName = "crash-" + MemberName + "-" + time + "-" + timetamp + "-" + DeviceUtils.getVersionName(mContext) + CRASH_REPORTER_EXTENSION;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡 if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//外部存储卡
try { try {
File dir = new File(FileUtils.ERRORLOG_PATH); File dir = new File(FileUtils.ERRORLOG_PATH);
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.globalconfig.applyOptions; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.globalconfig.applyOptions;
import android.content.Context; import android.content.Context;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.jess.arms.di.module.ClientModule; import com.jess.arms.di.module.ClientModule;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -17,12 +18,13 @@ import okhttp3.OkHttpClient; ...@@ -17,12 +18,13 @@ import okhttp3.OkHttpClient;
* description: * description:
*/ */
public class MyOkhttpConfiguration implements ClientModule.OkhttpConfiguration{ public class MyOkhttpConfiguration implements ClientModule.OkhttpConfiguration {
@Override @Override
public void configOkhttp(Context context, OkHttpClient.Builder builder) { public void configOkhttp(Context context, OkHttpClient.Builder builder) {
// builder.sslSocketFactory(); //支持 Https,详情请百度 // builder.sslSocketFactory(); //支持 Https,详情请百度
builder.writeTimeout(15, TimeUnit.SECONDS); builder.writeTimeout(GsaCloudApplication.REQUEST_TIMEOUT, TimeUnit.SECONDS);
builder.readTimeout(GsaCloudApplication.REQUEST_TIMEOUT, TimeUnit.SECONDS);
//使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听 详细使用方法查看 https://github.com/JessYanCoding/ProgressManager //使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听 详细使用方法查看 https://github.com/JessYanCoding/ProgressManager
ProgressManager.getInstance().with(builder); ProgressManager.getInstance().with(builder);
//让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager //让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager
......
...@@ -117,6 +117,13 @@ ...@@ -117,6 +117,13 @@
<string name="srl_footer_failed">加載失敗</string> <string name="srl_footer_failed">加載失敗</string>
<string name="srl_footer_nothing">沒有更多數據了</string> <string name="srl_footer_nothing">沒有更多數據了</string>
<!-- EmptyViewFragment 空界面展示界面 -->
<string name="emptyView_mode_title_loading">顯示Loading</string>
<string name="emptyView_mode_desc_fail_title">加載失敗</string>
<string name="emptyView_mode_desc_fail_desc">請檢測網絡是否正常連接</string>
<string name="emptyView_mode_desc_retry">點擊重試</string>
<string name="emptyView_mode_desc_double">未獲取到數據</string>
<!-- HttpError --> <!-- HttpError -->
<string name="response_error_unknown_error">未知錯誤</string> <string name="response_error_unknown_error">未知錯誤</string>
<string name="response_error_network_unavailable">網絡不可用</string> <string name="response_error_network_unavailable">網絡不可用</string>
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
<activity android:name=".mvp.ui.activity.MealStandActivity"/> <activity android:name=".mvp.ui.activity.MealStandActivity"/>
<activity android:name=".mvp.ui.activity.OrderPayActivity" /> <activity android:name=".mvp.ui.activity.OrderPayActivity" />
<activity android:name=".mvp.ui.activity.OrderContentActivity" /> <activity android:name=".mvp.ui.activity.OrderContentActivity" />
<activity android:name=".mvp.ui.activity.OrderCenterActivity" /> <activity android:name=".mvp.ui.activity.orderManager.OrderCenterActivity" />
<activity android:name=".mvp.ui.activity.OrderDetailActivity" /> <activity android:name=".mvp.ui.activity.orderManager.OrderDetailActivity" />
<meta-data <meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration" android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" /> android:value="ConfigModule" />
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme.Base"> android:theme="@style/AppTheme.Base">
<activity android:name=".mvp.ui.activity.OrderDetailActivity"/> <activity android:name=".mvp.ui.activity.orderManager.OrderDetailActivity"/>
<activity android:name=".mvp.ui.activity.OrderCenterActivity" /> <activity android:name=".mvp.ui.activity.orderManager.OrderCenterActivity" />
<activity android:name=".mvp.ui.activity.TableActivity"> <activity android:name=".mvp.ui.activity.TableActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
...@@ -31,12 +31,12 @@ ...@@ -31,12 +31,12 @@
android:name="design_height_in_dp" android:name="design_height_in_dp"
android:value="540" /> android:value="540" />
</application> </application>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest> </manifest>
\ No newline at end of file
...@@ -4,7 +4,7 @@ import com.billy.cc.core.component.CC; ...@@ -4,7 +4,7 @@ import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult; import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent; import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderCenterActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
......
...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderCenterModule; ...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderCenterModule;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderCenterActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
/** /**
......
...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderDetailModule; ...@@ -9,7 +9,7 @@ import com.gingersoft.gsa.cloud.table.di.module.OrderDetailModule;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderDetailActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderDetailActivity;
/** /**
......
package com.gingersoft.gsa.cloud.table.mvp.contract; package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import java.util.List;
import io.reactivex.Observable;
/** /**
* ================================================ * ================================================
...@@ -20,10 +26,21 @@ public interface OrderCenterContract { ...@@ -20,10 +26,21 @@ public interface OrderCenterContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
void showEmptyView(boolean isSuccess,int size,Throwable t);
void returnOrderItemList(List<OrderDetailItem> orderItemList);
void setPageIndex(int index);
int getPageIndex();
int getPageSize();
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Observable<BaseResult> loadOrderList(int restaurantId, int pageIndex, int pageSize);
} }
} }
...@@ -2,6 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.model; ...@@ -2,6 +2,9 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
...@@ -12,6 +15,8 @@ import javax.inject.Inject; ...@@ -12,6 +15,8 @@ import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import io.reactivex.Observable;
/** /**
* ================================================ * ================================================
...@@ -43,4 +48,10 @@ public class OrderCenterModel extends BaseModel implements OrderCenterContract.M ...@@ -43,4 +48,10 @@ public class OrderCenterModel extends BaseModel implements OrderCenterContract.M
this.mGson = null; this.mGson = null;
this.mApplication = null; this.mApplication = null;
} }
@Override
public Observable<BaseResult> loadOrderList(int restaurantId, int pageIndex, int pageSize) {
return mRepositoryManager.obtainRetrofitService(OrderService.class)
.loadOrderList(restaurantId,pageIndex,pageSize);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* Created by Wyh on 2020/1/17.
*/
public interface OrderService {
@POST("order/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> loadOrderList(@Query("restaurantId") int restaurantId, @Query("pageIndex") int pageIndex, @Query("pageSize") int pageSize);
}
...@@ -2,11 +2,15 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,11 +2,15 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.view.View;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderDetailActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderCenterAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.TableAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
...@@ -17,7 +21,6 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler; ...@@ -17,7 +21,6 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract; import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract;
import com.jess.arms.utils.DeviceUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -46,12 +49,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -46,12 +49,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
private OrderCenterActivity IActivity;
private OrderCenterAdapter mOrderCenterAdapter; private OrderCenterAdapter mOrderCenterAdapter;
private List<Object> mTableList = new ArrayList<>(); private List<OrderDetailItem> mOrderItemList = new ArrayList<>();
@Inject @Inject
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) { public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
super(model, rootView); super(model, rootView);
AllOrderFragment allOrderFragment = (AllOrderFragment) rootView;
this.IActivity = (OrderCenterActivity) allOrderFragment.getActivity();
} }
@Override @Override
...@@ -65,9 +71,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -65,9 +71,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
public void initOrderAdapter(Context context) { public void initOrderAdapter(Context context) {
if (mOrderCenterAdapter == null) { if (mOrderCenterAdapter == null) {
mOrderCenterAdapter = new OrderCenterAdapter(context, mTableList); mOrderCenterAdapter = new OrderCenterAdapter(context, mOrderItemList);
mRootView.setAllOrderAdapter(mOrderCenterAdapter); mRootView.setAllOrderAdapter(mOrderCenterAdapter);
} }
mOrderCenterAdapter.setOnItemClickListener(new DefaultAdapter.OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
Intent intent = new Intent(IActivity, OrderDetailActivity.class);
intent.putExtra("orderDetailItem", (OrderDetailItem) data);
mRootView.launchActivity(intent);
}
});
}
public void updateOrderData(List<OrderDetailItem> orderItemList) {
if (orderItemList != null) {
mOrderItemList.clear();
mOrderItemList.addAll(orderItemList);
mOrderCenterAdapter.notifyDataSetChanged();
}
}
public void addOrderData(List<OrderDetailItem> orderItemList) {
if (orderItemList != null) {
mOrderItemList.addAll(orderItemList);
mOrderCenterAdapter.notifyDataSetChanged();
}
} }
} }
...@@ -2,16 +2,29 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,16 +2,29 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import javax.inject.Inject; import javax.inject.Inject;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.jess.arms.utils.RxLifecycleUtils;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import java.util.List;
/** /**
...@@ -37,9 +50,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -37,9 +50,13 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
private OrderCenterActivity IActivity;
@Inject @Inject
public OrderCenterPresenter(OrderCenterContract.Model model, OrderCenterContract.View rootView) { public OrderCenterPresenter(OrderCenterContract.Model model, OrderCenterContract.View rootView) {
super(model, rootView); super(model, rootView);
this.IActivity = (OrderCenterActivity) rootView;
} }
@Override @Override
...@@ -51,5 +68,68 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode ...@@ -51,5 +68,68 @@ public class OrderCenterPresenter extends BasePresenter<OrderCenterContract.Mode
this.mApplication = null; this.mApplication = null;
} }
/**
* 獲取訂單列表
*
* @param pageIndex
* @param pageSize
* @param refreshLayout
* @param isLoadMore
*/
public void loadOrderList(int pageIndex, int pageSize, RefreshLayout refreshLayout, boolean isLoadMore) {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
mModel.loadOrderList(restaurantId, pageIndex, pageSize)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> {
if (refreshLayout == null) {
mRootView.showLoading(null);
}
})
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult result) {
if (result.isSuccess()) {
if (result.getData() != null) {
List<OrderDetailItem> orderItemList = JsonUtils.parseArray(result.getData(), OrderDetailItem.class);
if (orderItemList.size() > 0) {
mRootView.returnOrderItemList(orderItemList);
//每次更新完數據,頁碼+1
mRootView.setPageIndex(mRootView.getPageIndex() + 1);
} else {
mRootView.showEmptyView(true,0, null);
}
} else {
mRootView.showEmptyView(true,0, null);
}
} else {
mRootView.showEmptyView(false,0, null);
}
resetRefreshLayout();
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.showEmptyView(false,0, t);
resetRefreshLayout();
}
private void resetRefreshLayout() {
if (refreshLayout != null) {
if (isLoadMore) {
refreshLayout.finishLoadMore();
} else {
refreshLayout.finishRefresh();
refreshLayout.resetNoMoreData();//setNoMoreData(false);
}
}
}
});
}
} }
...@@ -157,25 +157,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -157,25 +157,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}); });
return; return;
} }
// if (mBottomFunctionList.get(position).getResName().equals("↑")) {
// mBottomFunctionList.add(new Function((long) 5, 1, 2025, "skyorder", "", ""));
// mBottomFunctionList.add(new Function((long) 6, 1, 2025, "上菜紙", "", ""));
// for (int i = 0; i < mBottomFunctionList.size(); i++) {
// boolean isMore = mBottomFunctionList.get(i).getResName().equals("↑");
// if (isMore)
// mBottomFunctionList.get(i).setResName("↓");
// }
// mBottomFunctionAdapter.notifyDataSetChanged();
// } else if (mBottomFunctionList.get(position).getResName().equals("↓")) {
// mBottomFunctionList.remove(mBottomFunctionList.size() - 1);
// mBottomFunctionList.remove(mBottomFunctionList.size() - 1);
// for (int i = 0; i < mBottomFunctionList.size(); i++) {
// boolean isMore = mBottomFunctionList.get(i).getResName().equals("↓");
// if (isMore)
// mBottomFunctionList.get(i).setResName("↑");
// }
// mBottomFunctionAdapter.notifyDataSetChanged();
// }
} }
}); });
} }
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragment;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllOrderFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.StateTableFragment;
import com.gingersoft.gsa.cloud.ui.view.PagerSlidingTabStrip;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderCenterComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderCenterContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderCenterPresenter;
import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.QMUIViewPager;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/13/2020 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class OrderCenterActivity extends BaseActivity<OrderCenterPresenter> implements OrderCenterContract.View {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.tabSegment)
QMUITabSegment mTabSegment;
@BindView(R2.id.contentViewPager)
ViewPager mContentViewPager;
private String[] tabTitles = {"全部", "已取消"};
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderCenterComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_order_center; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initTabAndPager();
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment createFragment(int position) {
AllOrderFragment fragment = new AllOrderFragment();
Bundle bundle = new Bundle();
bundle.putInt("currentPageIndex", position);
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "全部";
case 1:
return "已取消";
case 3:
default:
return "全部";
}
}
};
mContentViewPager.setAdapter(pagerAdapter);
mTabSegment.setupWithViewPager(mContentViewPager);
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
}
});
mTopBar.setTitle("張單管理");
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
if (message != null)
LoadingDialog.showDialogForLoading(this, message, true);
else
LoadingDialog.showDialogForLoading(this);
}
@Override
public void hideLoading() {
LoadingDialog.cancelDialogForLoading();
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.makeText(this, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
}
...@@ -43,7 +43,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -43,7 +43,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
/** /**
* ================================================ * ================================================
* Description: * Description: 賬單內容
* <p> * <p>
* Created by MVPArmsTemplate on 01/09/2020 19:23 * Created by MVPArmsTemplate on 01/09/2020 19:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a> * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderDetailPresenter;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.R;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 03/13/2020 14:29
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> implements OrderDetailContract.View {
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderDetailComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_order_detail; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
}
@Override
public void initIntent() {
}
@Override
public void initTopBar() {
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
}
@Override
public void hideLoading() {
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.snackbarText(message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
}
...@@ -130,7 +130,6 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table ...@@ -130,7 +130,6 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initTabBarViewPage(); initTabBarViewPage();
mPresenter.initBottomFunction(); mPresenter.initBottomFunction();
mPresenter.getTables(true); mPresenter.getTables(true);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderDetailPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailFoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderDetailPayMethodAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* ================================================
* Description: 訂單詳情頁#顯示單條該餐廳下已結賬單
* <p>
* Created by MVPArmsTemplate on 03/13/2020 14:29
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> implements OrderDetailContract.View {
@BindView(R2.id.topbar)
QMUITopBar mTopBar;
@BindView(R2.id.scrollview)
ScrollView scrollview;
@BindView(R2.id.tv_table_name)
TextView tv_table_name;
@BindView(R2.id.tv_people_num)
TextView tv_people_num;
@BindView(R2.id.tv_order_num)
TextView tv_order_num;
@BindView(R2.id.tv_open_time)
TextView tv_open_time;
@BindView(R2.id.tv_pay_time)
TextView tv_pay_time;
@BindView(R2.id.tv_food_detail_text)
TextView tv_food_detail_text;
@BindView(R2.id.recycler_food)
RecyclerView recycler_food;
@BindView(R2.id.recycler_discount)
RecyclerView recycler_discount;
@BindView(R2.id.recycler_pay_method)
RecyclerView recycler_pay_method;
@BindView(R2.id.tv_total_text)
TextView tv_total_text;
@BindView(R2.id.tv_server_money_text)
TextView tv_server_money_text;
@BindView(R2.id.tv_total_money_text)
TextView tv_total_money_text;
@BindView(R2.id.tv_total)
TextView tv_total;
@BindView(R2.id.tv_server_money)
TextView tv_server_money;
@BindView(R2.id.tv_total_money)
TextView tv_total_money;
@BindView(R2.id.btn_print_order)
QMUIAlphaButton btn_print_order;
@BindView(R2.id.btn_tips)
QMUIAlphaButton btn_tips;
@BindView(R2.id.btn_refund)
QMUIAlphaButton btn_refund;
@BindView(R2.id.btn_cancel_order)
QMUIAlphaButton btn_cancel_order;
@BindView(R2.id.btn_modify_order)
QMUIAlphaButton btn_modify_order;
@BindView(R2.id.ll_bottom)
LinearLayout ll_bottom;
@BindView(R2.id.tv_order_status)
TextView tv_order_status;
private OrderDetailItem mOrderDetailItem;
private OrderDetailFoodAdapter mOrderDetailFoodAdapter;
private List<OrderDetail> mOrderDetailList = new ArrayList<>();
private OrderDetailPayMethodAdapter MOrderDetailPayMethodAdapter;
// private List<Object> mOrderDetailList;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderDetailComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.activity_order_detail; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initOrderDetail(mOrderDetailItem);
}
private void initOrderDetail(OrderDetailItem mOrderDetailItem) {
if (mOrderDetailItem != null) {
String payBill = LanguageUtils.get_language_system(this, "opentable.paybill", "結賬") + ":";
String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號̖") + ":";
String pax = LanguageUtils.get_language_system(this, "Meal.Mannumber", "人數") + ":";
String orderNumber = LanguageUtils.get_language_system(this, "order.number", "訂單號") + ":";
String openTable = LanguageUtils.get_language_system(this, "open.table", "開台") + ":";
tv_pay_time.setText(payBill + mOrderDetailItem.getCreateTime());
tv_table_name.setText(tableName + mOrderDetailItem.getId());
tv_people_num.setText(pax + mOrderDetailItem.getPerson());
tv_order_num.setText(orderNumber + mOrderDetailItem.getOrderNo());
tv_open_time.setText(openTable + mOrderDetailItem.getCreateTime());
tv_total.setText("$" + mOrderDetailItem.getTotalAmount());
// if (datasBean.getOrderMember().get(0).getSCAMOUNT() != 0) {
// tv_server_money.setText("$" + datasBean.getOrderMember().get(0).getSCAMOUNT());
// } else {
tv_server_money.setVisibility(View.GONE);
tv_server_money_text.setVisibility(View.GONE);
// }
tv_total_money.setText("$" + mOrderDetailItem.getTotalAmount());
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(mOrderDetailItem.getOrderDetails()));
mOrderDetailList.addAll(orderDetailList);
mOrderDetailFoodAdapter = new OrderDetailFoodAdapter(mOrderDetailList);
recycler_food.setAdapter(mOrderDetailFoodAdapter);
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recycler_food.setLayoutManager(mAllOrderRecycleLayoutManager);
recycler_food.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
}
}
@Override
public void initIntent() {
Intent intent = getIntent();
mOrderDetailItem = (OrderDetailItem) intent.getSerializableExtra("orderDetailItem");
}
@Override
public void initTopBar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
}
});
mTopBar.setTitle(LanguageUtils.get_language_system(this, "function.order.detail", "賬單詳情")).setTextColor(ArmsUtils.getColor(this,R.color.theme_white_color));
}
@Override
public void initLanguage() {
}
@Override
public void initLayoutParams() {
}
@Override
public void initLayoutVisible() {
}
@Override
public void showLoading(String message) {
if (message != null)
LoadingDialog.showDialogForLoading(this, message, true);
else
LoadingDialog.showDialogForLoading(this);
}
@Override
public void hideLoading() {
LoadingDialog.cancelDialogForLoading();
}
@Override
public void showMessage(@NonNull String message) {
checkNotNull(message);
ArmsUtils.makeText(this, message);
}
@Override
public void launchActivity(@NonNull Intent intent) {
checkNotNull(intent);
ArmsUtils.startActivity(intent);
}
@Override
public void killMyself() {
finish();
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter; package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
...@@ -25,11 +24,11 @@ import butterknife.BindView; ...@@ -25,11 +24,11 @@ import butterknife.BindView;
* 修订历史:2018/6/27 * 修订历史:2018/6/27
* 描述: * 描述:
*/ */
public class OrderCenterAdapter extends DefaultAdapter<Object> { public class OrderCenterAdapter extends DefaultAdapter<OrderDetailItem> {
private Context mContext; private Context mContext;
public OrderCenterAdapter(Context context, List<Object> infos) { public OrderCenterAdapter(Context context, List<OrderDetailItem> infos) {
super(infos); super(infos);
this.mContext = context; this.mContext = context;
} }
...@@ -40,7 +39,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> { ...@@ -40,7 +39,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> {
} }
@Override @Override
public BaseHolder<Object> getHolder(View v, int viewType) { public BaseHolder<OrderDetailItem> getHolder(View v, int viewType) {
return new OrderCenterItemHolder(v); return new OrderCenterItemHolder(v);
} }
...@@ -49,7 +48,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> { ...@@ -49,7 +48,7 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> {
return R.layout.item_order_center; return R.layout.item_order_center;
} }
class OrderCenterItemHolder extends BaseHolder<Object> { class OrderCenterItemHolder extends BaseHolder<OrderDetailItem> {
@BindView(R2.id.ll_root_container) @BindView(R2.id.ll_root_container)
LinearLayout ll_root_container; LinearLayout ll_root_container;
...@@ -79,29 +78,33 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> { ...@@ -79,29 +78,33 @@ public class OrderCenterAdapter extends DefaultAdapter<Object> {
@BindView(R2.id.btn_order_status) @BindView(R2.id.btn_order_status)
QMUIAlphaButton btn_order_status; QMUIAlphaButton btn_order_status;
@BindView(R2.id.ll_bottom) @BindView(R2.id.ll_bottom)
QMUIAlphaButton ll_bottom; LinearLayout ll_bottom;
public OrderCenterItemHolder(View itemView) { public OrderCenterItemHolder(View itemView) {
super(itemView); super(itemView);
} }
@Override @Override
public void setData(Object datasBean, int position) { public void setData(OrderDetailItem datasBean, int position) {
String tableName = LanguageUtils.get_language_system(mContext, "table.number", "檯號") + ":";
String pax = LanguageUtils.get_language_system(mContext, "Meal.Mannumber", "人數") + ":";
String orderNumber = LanguageUtils.get_language_system(mContext, "order.number", "訂單號") + ":";
String openTable = LanguageUtils.get_language_system(mContext, "open.table", "開台") + ":";
String amount = LanguageUtils.get_language_system(mContext, "amount", "金額") + ":$";
tv_table_name.setText(tableName + datasBean.getId());
tv_order_num.setText(orderNumber + datasBean.getOrderNo());
tv_people_num.setText(pax + datasBean.getPerson());
tv_open_time.setText(openTable + datasBean.getCreateTime());
tv_pay_money.setText(amount + datasBean.getTotalAmount());
} btn_print_order.setText(LanguageUtils.get_language_system(mContext, "print.order", "打印賬單"));
} btn_tips.setText(LanguageUtils.get_language_system(mContext, "public.tips", "貼士"));
btn_modify_order.setText(LanguageUtils.get_language_system(mContext, "modify.order", "修改訂單"));
btn_cancel_order.setText(LanguageUtils.get_language_system(mContext, "cancel.order", "取消訂單"));
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
} }
public interface OnItemClickListener {
void onItemClick(BillOrderMoney datasBean, int position);
} }
} }
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.view.Gravity;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import java.util.List;
import androidx.annotation.Nullable;
public class OrderDetailFoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
public OrderDetailFoodAdapter(@Nullable List<OrderDetail> data) {
super(R.layout.item_order_detail_food, data);
}
@Override
protected void convert(BaseViewHolder helper, OrderDetail item) {
TextView tv_food_name = helper.getView(R.id.tv_food_name);
int flevel = item.getItemType();
String productName = item.getProductName();
switch (flevel) {
case 1:
tv_food_name.setGravity(Gravity.LEFT);
break;
case 2:
productName = " " + productName;
tv_food_name.setGravity(Gravity.CENTER);
break;
case 3:
productName = " " + productName;
tv_food_name.setGravity(Gravity.RIGHT);
break;
}
tv_food_name.setText(productName);
helper.setText(R.id.tv_food_number, item.getNumber());
helper.setText(R.id.tv_food_total, "$" + item.getPrice() * item.getNumber());
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.view.Gravity;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.table.R;
import java.util.List;
import androidx.annotation.Nullable;
public class OrderDetailPayMethodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
public OrderDetailPayMethodAdapter(@Nullable List<OrderDetail> data) {
super(R.layout.item_order_detail_pay_method, data);
}
@Override
protected void convert(BaseViewHolder helper, OrderDetail item) {
helper.setText(R.id.tv_name, item.getNumber());
helper.setText(R.id.tv_money, "$" + item.getPrice() * item.getNumber());
}
}
...@@ -6,8 +6,11 @@ import android.os.Message; ...@@ -6,8 +6,11 @@ import android.os.Message;
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 com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.GridDividerItemDecoration; import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.jess.arms.base.BaseFragment; import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
...@@ -16,10 +19,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerAllOrderComponent; ...@@ -16,10 +19,12 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerAllOrderComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract; import com.gingersoft.gsa.cloud.table.mvp.contract.AllOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.presenter.AllOrderPresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.AllOrderPresenter;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import java.util.List; import java.util.List;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
...@@ -44,11 +49,15 @@ import static com.jess.arms.utils.Preconditions.checkNotNull; ...@@ -44,11 +49,15 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements AllOrderContract.View { public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements AllOrderContract.View {
@BindView(R2.id.refreshLayout) @BindView(R2.id.refreshLayout)
SmartRefreshLayout refreshLayout; RefreshLayout refreshLayout;
@BindView(R2.id.recycle_order) @BindView(R2.id.recycle_order)
RecyclerView recycle_order; RecyclerView recycle_order;
private int currentPageInde; private OrderCenterActivity orderCenterActivity;
private int currentPageIndex;
private int pageIndex = 1;
private int pageSize = 10;
public static AllOrderFragment newInstance() { public static AllOrderFragment newInstance() {
AllOrderFragment fragment = new AllOrderFragment(); AllOrderFragment fragment = new AllOrderFragment();
...@@ -72,9 +81,28 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -72,9 +81,28 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
currentPageInde = (int) getArguments().getInt("currentPageIndex",0); currentPageIndex = getArguments().getInt("currentPageIndex", 0);
orderCenterActivity = (OrderCenterActivity) getActivity();
mPresenter.initOrderAdapter(getActivity()); mPresenter.initOrderAdapter(getActivity());
initRefreshLayout();
}
private void initRefreshLayout() {
refreshLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh(@NonNull final RefreshLayout refreshLayout) {
//重新獲取第一頁數據
pageIndex = 1;
orderCenterActivity.loadOrderList(refreshLayout, false);
}
});
refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
@Override
public void onLoadMore(@NonNull final RefreshLayout refreshLayout) {
orderCenterActivity.loadOrderList(refreshLayout, true);
}
});
} }
@Override @Override
...@@ -82,16 +110,17 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -82,16 +110,17 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
if (data != null && data instanceof Message) { if (data != null && data instanceof Message) {
switch (((Message) data).what) { switch (((Message) data).what) {
case 0: case 0:
List<OrderDetailItem> datasBeans = (List<OrderDetailItem>) ((Message) data).obj;
if (mPresenter != null) {
mPresenter.updateOrderData(datasBeans);
}
break;
case 1:
List<OrderDetailItem> addDataItem = (List<OrderDetailItem>) ((Message) data).obj;
if (mPresenter != null) {
mPresenter.addOrderData(addDataItem);
}
break; break;
case 1://刷新全部数据
// datasBeans = (List<TableBean.DataBean>) ((Message) data).obj;
// if (mPresenter != null) {
// //recycleView正在滑动
// if (recycle_all_table.getScrollState() != 0) {
// } else {
// mPresenter.updateAllTableData(getActivity(), datasBeans);
// }
// }
default: default:
//do something //do something
break; break;
...@@ -123,8 +152,8 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -123,8 +152,8 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
@Override @Override
public void killMyself() { public void killMyself() {
}
}
@Override @Override
public void setAllOrderAdapter(DefaultAdapter adapter) { public void setAllOrderAdapter(DefaultAdapter adapter) {
...@@ -135,7 +164,23 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -135,7 +164,23 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
private void initAllOrderRecycleViewLayout() { private void initAllOrderRecycleViewLayout() {
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager); recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager);
recycle_order.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color))); recycle_order.addItemDecoration(new DividerItemDecoration(orderCenterActivity, LinearLayoutManager.VERTICAL));
}
public int getPageIndex() {
return pageIndex;
} }
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
} }
...@@ -33,4 +33,11 @@ ...@@ -33,4 +33,11 @@
android:fitsSystemWindows="true"/> android:fitsSystemWindows="true"/>
</LinearLayout> </LinearLayout>
<com.qmuiteam.qmui.widget.QMUIEmptyView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/qmui_topbar_height"
android:fitsSystemWindows="true"/>
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> </com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
...@@ -14,7 +14,8 @@ ...@@ -14,7 +14,8 @@
android:id="@+id/recycle_order" android:id="@+id/recycle_order"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:overScrollMode="never" /> android:overScrollMode="never"
android:background="@color/theme_background_color"/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout> </com.scwang.smartrefresh.layout.SmartRefreshLayout>
</FrameLayout> </FrameLayout>
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
android:id="@+id/ll_root_container" android:id="@+id/ll_root_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:background="@drawable/selector_item_background" android:background="@drawable/selector_item_background"
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/dp_8"> android:padding="@dimen/dp_8">
...@@ -33,23 +34,12 @@ ...@@ -33,23 +34,12 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_people_num"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:layout_weight="1"
android:gravity="right"
android:text="人數:2"
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3" android:layout_marginTop="@dimen/dp_5"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
...@@ -62,29 +52,49 @@ ...@@ -62,29 +52,49 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView <TextView
android:id="@+id/tv_pay_money" android:id="@+id/tv_people_num"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical" android:layout_gravity="right|center_vertical"
android:text="金額:$230" android:gravity="right"
android:text="人數:2"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_14" />
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_3"
android:orientation="horizontal">
<TextView <TextView
android:id="@+id/tv_pay_time" android:id="@+id/tv_pay_time"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginTop="@dimen/dp_3" android:layout_marginTop="@dimen/dp_3"
android:layout_weight="1"
android:text="結賬:2019-7-2" android:text="結賬:2019-7-2"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_pay_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:gravity="right"
android:text="金額:$230"
android:textColor="@color/black"
android:textSize="@dimen/sp_18"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/ll_bottom" android:id="@+id/ll_bottom"
...@@ -111,17 +121,16 @@ ...@@ -111,17 +121,16 @@
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:background="@color/green_400" android:background="@color/green_400"
android:text="貼士" android:text="貼士"
android:visibility="gone"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13"
android:visibility="gone" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_cancel_order" android:id="@+id/btn_cancel_order"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/red_400"
android:layout_marginRight="@dimen/dp_10" android:layout_marginRight="@dimen/dp_10"
android:background="@color/red_400"
android:text="取消訂單" android:text="取消訂單"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13" />
...@@ -135,7 +144,7 @@ ...@@ -135,7 +144,7 @@
android:text="退款" android:text="退款"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:visibility="visible" /> android:visibility="gone" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_modify_order" android:id="@+id/btn_modify_order"
...@@ -143,18 +152,18 @@ ...@@ -143,18 +152,18 @@
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/blue_300" android:background="@color/blue_300"
android:text="修改訂單" android:text="修改訂單"
android:visibility="gone"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13"
android:visibility="gone" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_order_status" android:id="@+id/btn_order_status"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/gray" android:background="@color/gray"
android:clickable="false"
android:text="已取消" android:text="已取消"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:clickable="false"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:visibility="gone" /> android:visibility="gone" />
</LinearLayout> </LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_item_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingBottom="@dimen/dp_5">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="6">
<TextView
android:id="@+id/tv_food_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:ellipsize="end"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:maxLines="1"
android:text="" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_food_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_food_total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_14" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_content_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_10"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
</RelativeLayout>
\ No newline at end of file
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