diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index d4bedb5..e75718b 100755 --- a/build.gradle +++ b/build.gradle @@ -91,17 +91,15 @@ ext { gXRecyclerViewVersion = '1.5.9' //rxview gRxjavaBindingVersion = '2.1.1' - gPickerViewVersion = '4.1.6' wheelVersion = '4.1.0' gBoomMenu = '2.1.1' gFilePicker = '1.8.0' - pickerViewVersion = '4.1.9' + gPickerViewVersion = '4.1.9' //bottomNavBar supportBottomNavBar = '2.0.5' eventButsVersion = '3.1.1' bannerVersion = '2.0.8' plugVersion = '27.1.1' - pickerViewVersion = '4.1.6' xRecyclerViewVersion = '1.5.9' lfilepickerlibraryVersion = '1.8.0' mIndicatorVersion = '1.5.0' diff --git a/cm_utils/build.gradle b/cm_utils/build.gradle index 76ec12d..28aeb57 100755 --- a/cm_utils/build.gradle +++ b/cm_utils/build.gradle @@ -64,8 +64,8 @@ dependencies { //butterknife api "com.jakewharton:butterknife:$rootProject.ext.gButterKnifeVersion" ////选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" - implementation "com.contrarywind:wheelview:${rootProject.ext.wheelVersion}" + api "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" + api "com.contrarywind:wheelview:${rootProject.ext.wheelVersion}" //recyclerview implementation 'androidx.recyclerview:recyclerview:1.2.1' //选择器 diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/constant/PathConfig.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/constant/PathConfig.java index 2954ab7..897c220 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/constant/PathConfig.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/constant/PathConfig.java @@ -117,8 +117,7 @@ public class PathConfig { public static final String PATH_MODULE_PLACE_ACTIVITY_PLACEDETAIL = "/moduleplace/activity/placedetail";//场馆详情 public static final String PATH_MODULE_PLACE_ACTIVITY_PLACELIST = "/moduleplace/activity/placelist";//场馆列表 public static final String PATH_MODULE_PLACE_FRAGMENT_MAIN = "/moduleplace/fragment/main";//场馆fragment - public static final String PATH_MODULE_PLACE_ACTIVITY_PLACE_SUBJECT_DETAIL = "/moduleplace/activity/subjectdetail" - ;//场馆详情 + public static final String PATH_MODULE_PLACE_ACTIVITY_PLACE_SUBJECT_DETAIL = "/moduleplace/activity/subjectdetail";//场馆详情 public static final String PATH_MODULE_PLACE_TICKET_DISTINE = "/moduleplace/activity/distineticket";//门票预定 public static final String PATH_MODULE_PLACE_DISTINE_BOOKING = "/moduleplace/activity/distinebooking";//场次预定 @@ -140,8 +139,7 @@ public class PathConfig { public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE = "/modulecultural/activity/vounteermanage";//志愿团队 public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE_LIST = "/modulecultural/activity" + "/vounteermanagelsit";//我创建的自愿者团队 - public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_TEAM = "/modulecultural/activity/vounteermember" - ;//志愿者列表 + public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_TEAM = "/modulecultural/activity/vounteermember";//志愿者列表 public static final String PATH_MODULE_CULTURAL_VOUNTEER_MEMBER_DETAIL = "/modulecultural/activity" + "/vounteermemberdetail";//志愿者详情 public static final String PATH_MODULE_CULTURAL_VOUNTEER_MANAGE_MEMBER = "/modulecultural/activity" + @@ -153,8 +151,7 @@ public class PathConfig { public static final String PATH_MODULE_CULTURAL_LIVE_LIST = "/modulecultural/activity/livelookbacklist";//直播回看播放列表 public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_DETAIL = "/modulecultural/activity/vounteer" + "/detail";//我创建的团队详情 - public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_EDIT = "/modulecultural/activity/vounteer/edit" - ;//编辑我创建的团队 + public static final String PATH_MODULE_CULTURAL_VOUNTEER_MINE_TEAM_EDIT = "/modulecultural/activity/vounteer/edit";//编辑我创建的团队 public static final String PATH_MODULE_CULTURAL_VOUNTEER_ACTIVITY_LIST = "/modulecultural/activity/vounteer" + "/activitylist";//志愿者活动列表 @@ -265,4 +262,10 @@ public class PathConfig { public static final String PATH_MODULE_SHOP_ACTIVITY_GOODS_LIST = "/moduleshop/activity/shopGoodsList";//商品列表 public static final String PATH_MODULE_SHOP_ACTIVITY_GOODS_DETAIL = "/moduleshop/activity/shopGoodsDetail";//商品详情 public static final String PATH_MODULE_SHOP_ACTIVITY_SHOP_CAR = "/moduleshop/activity/shopGoodsCar";//购物车 + public static final String PATH_MODULE_SHOP_ACTIVITY_SHOP_ORDER_CONFIRM = + "/moduleshop/activity/shopOrderConfirm";//订单确认 + public static final String PATH_MODULE_SHOP_ACTIVITY_SHOP_ADDRESS = "/moduleshop/activity/shopGoodsAddress";//收货地址 + public static final String PATH_MODULE_SHOP_ACTIVITY_SHOP_MINE_ORDER = "/moduleshop/activity/shopOrderList";//我的订单 + public static final String PATH_MODULE_SHOP_ACTIVITY_SHOP_MINE_ORDER_DETAIL = "/moduleshop/activity/shopOrderDetail";//我的订单 + public static final String PATH_MODULE_SHOP_ACTIVITY_SHOP_ADD_ADDRESS = "/moduleshop/activity/shopAddAddress";//新增收货地 } diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/beans/AreaBean.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/beans/AreaBean.java index 335f6c3..f04a3c5 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/beans/AreaBean.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/beans/AreaBean.java @@ -1,5 +1,7 @@ package com.sucstepsoft.cm_utils.core.beans; +import com.contrarywind.interfaces.IPickerViewData; + import java.util.List; /** @@ -8,7 +10,7 @@ import java.util.List; * 邮箱: itgaojian@163.com * 描述: */ -public class AreaBean { +public class AreaBean implements IPickerViewData { /** * areaCityCode : string @@ -174,6 +176,11 @@ public class AreaBean { this.subArea = subArea; } + @Override + public String getPickerViewText() { + return areaName; + } + public static class SubAreaBean { } } diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java index a91ccf2..28047f2 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/retrofit_net/api/BaseApiService.java @@ -290,4 +290,20 @@ public interface BaseApiService { Call downloadApk(@Url String url); + /** + * 统一用户-根据pId获取下级 + * + * @param pId + * @return + */ + @Headers({"Content-Type:application/json", "Accept:application/json"}) + @GET("app/area/listbyparentidrelease/{areaParentId}") + Observable> getArea(@Path("areaParentId") String pId); + + /** + * 统一用户-区域-根据Id获取详情 + */ + @Headers({"Content-Type:application/json", "Accept:application/json"}) + @GET("app/area/getrelease/{areaId}") + Observable getAreaDetail(@Path("areaId") String pId); } diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/BaseCustomHPickerView.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/BaseCustomHPickerView.java deleted file mode 100755 index 07d6bf7..0000000 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/BaseCustomHPickerView.java +++ /dev/null @@ -1,354 +0,0 @@ -package com.sucstepsoft.cm_utils.core.widget.views; - -import android.annotation.SuppressLint; -import android.app.Activity; -import android.app.Dialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.view.Display; -import android.view.Gravity; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.view.animation.AnimationUtils; -import android.widget.FrameLayout; - -import com.bigkoo.pickerview.configure.PickerOptions; -import com.bigkoo.pickerview.listener.OnDismissListener; -import com.bigkoo.pickerview.utils.PickerViewAnimateUtil; -import com.sucstepsoft.cm_utils.R; - -public class BaseCustomHPickerView { - private Context context; - protected ViewGroup contentContainer; - private ViewGroup rootView;//附加View 的 根View - private ViewGroup dialogView;//附加Dialog 的 根View - - protected PickerOptions mPickerOptions; - private OnDismissListener onDismissListener; - private boolean dismissing; - - private Animation outAnim; - private Animation inAnim; - private boolean isShowing; - - protected int animGravity = Gravity.BOTTOM; - - private Dialog mDialog; - protected View clickView;//是通过哪个View弹出的 - private boolean isAnim = true; - - public BaseCustomHPickerView(Context context) { - this.context = context; - } - - - protected void initViews() { - - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); - - LayoutInflater layoutInflater = LayoutInflater.from(context); - if (isDialog()) { - - //如果是对话框模式 - dialogView = (ViewGroup) layoutInflater.inflate(R.layout.layout_basepickerview, null, false); - //设置界面的背景为透明 - dialogView.setBackgroundColor(Color.TRANSPARENT); - //这个是真正要加载选择器的父布局 - contentContainer = (ViewGroup) dialogView.findViewById(R.id.content_container); - //设置对话框 默认左右间距屏幕30 -// params.leftMargin = 10; -// params.rightMargin = 10; - contentContainer.setLayoutParams(params); - //创建对话框 - createDialog(); - //给背景设置点击事件,这样当点击内容以外的地方会关闭界面 - dialogView.setOnClickListener(view -> dismiss()); - } else { - //如果只是要显示在屏幕的下方 - //decorView是activity的根View,包含 contentView 和 titleView - if (mPickerOptions.decorView == null) { - mPickerOptions.decorView = (ViewGroup) ((Activity) context).getWindow().getDecorView(); - } - //将控件添加到decorView中 - rootView = (ViewGroup) layoutInflater.inflate(R.layout.layout_basepickerview, mPickerOptions.decorView, false); - rootView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); - if (mPickerOptions.backgroundId != -1) { - rootView.setBackgroundColor(mPickerOptions.backgroundId); - } - //这个是真正要加载时间选取器的父布局 - contentContainer = (ViewGroup) rootView.findViewById(R.id.content_container); - contentContainer.setLayoutParams(params); - } - setKeyBackCancelable(true); - } - - protected void initAnim() { - inAnim = getInAnimation(); - outAnim = getOutAnimation(); - } - - protected void initEvents() { - } - - - /** - * @param v (是通过哪个View弹出的) - * @param isAnim 是否显示动画效果 - */ - public void show(View v, boolean isAnim) { - this.clickView = v; - this.isAnim = isAnim; - show(); - } - - public void show(boolean isAnim) { - this.isAnim = isAnim; - show(); - } - - public void show(View v) { - this.clickView = v; - show(); - } - - - /** - * 添加View到根视图 - */ - public void show() { - if (isDialog()) { - showDialog(); - } else { - if (isShowing()) { - return; - } - isShowing = true; - onAttached(rootView); - rootView.requestFocus(); - } - } - - - /** - * show的时候调用 - * - * @param view 这个View - */ - private void onAttached(View view) { - mPickerOptions.decorView.addView(view); - if (isAnim) { - contentContainer.startAnimation(inAnim); - } - } - - - /** - * 检测该View是不是已经添加到根视图 - * - * @return 如果视图已经存在该View返回true - */ - public boolean isShowing() { - if (isDialog()) { - return false; - } else { - return rootView.getParent() != null || isShowing; - } - - } - - public void dismiss() { - if (isDialog()) { - dismissDialog(); - } else { - if (dismissing) { - return; - } - - if (isAnim) { - //消失动画 - outAnim.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - - } - - @Override - public void onAnimationEnd(Animation animation) { - dismissImmediately(); - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - }); - contentContainer.startAnimation(outAnim); - } else { - dismissImmediately(); - } - dismissing = true; - } - - - } - - public void dismissImmediately() { - - mPickerOptions.decorView.post(new Runnable() { - @Override - public void run() { - //从根视图移除 - mPickerOptions.decorView.removeView(rootView); - isShowing = false; - dismissing = false; - if (onDismissListener != null) { - onDismissListener.onDismiss(BaseCustomHPickerView.this); - } - } - }); - - - } - - private Animation getInAnimation() { - int res = PickerViewAnimateUtil.getAnimationResource(this.animGravity, true); - return AnimationUtils.loadAnimation(context, res); - } - - private Animation getOutAnimation() { - int res = PickerViewAnimateUtil.getAnimationResource(this.animGravity, false); - return AnimationUtils.loadAnimation(context, res); - } - - public BaseCustomHPickerView setOnDismissListener(OnDismissListener onDismissListener) { - this.onDismissListener = onDismissListener; - return this; - } - - public void setKeyBackCancelable(boolean isCancelable) { - - ViewGroup View; - if (isDialog()) { - View = dialogView; - } else { - View = rootView; - } - - View.setFocusable(isCancelable); - View.setFocusableInTouchMode(isCancelable); - if (isCancelable) { - View.setOnKeyListener(onKeyBackListener); - } else { - View.setOnKeyListener(null); - } - } - - private View.OnKeyListener onKeyBackListener = (v, keyCode, event) -> { - if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == MotionEvent.ACTION_DOWN && isShowing()) { - dismiss(); - return true; - } - return false; - }; - - protected BaseCustomHPickerView setOutSideCancelable(boolean isCancelable) { - - if (rootView != null) { - View view = rootView.findViewById(R.id.outmost_container); - - if (isCancelable) { - view.setOnTouchListener(onCancelableTouchListener); - } else { - view.setOnTouchListener(null); - } - } - - return this; - } - - /** - * 设置对话框模式是否可以点击外部取消 - */ - public void setDialogOutSideCancelable() { - if (mDialog != null) { - mDialog.setCancelable(mPickerOptions.cancelable); - } - } - - - /** - * Called when the user touch on black overlay, in order to dismiss the dialog. - */ - @SuppressLint("ClickableViewAccessibility") - private final View.OnTouchListener onCancelableTouchListener = (v, event) -> { - if (event.getAction() == MotionEvent.ACTION_DOWN) { - dismiss(); - } - return false; - }; - - public View findViewById(int id) { - return contentContainer.findViewById(id); - } - - public void createDialog() { - if (dialogView != null) { - mDialog = new Dialog(context, R.style.custom_dialog2); - mDialog.setCancelable(mPickerOptions.cancelable);//不能点外面取消,也不能点back取消 - mDialog.setContentView(dialogView); - - Window dialogWindow = mDialog.getWindow(); - WindowManager m = ((Activity) context).getWindowManager(); - Display d = m.getDefaultDisplay(); - WindowManager.LayoutParams p = dialogWindow.getAttributes(); - p.height = (int) (d.getHeight() * 0.9); - p.width = (int) (d.getWidth() * 0.3); - dialogWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - dialogWindow.setAttributes(p); - if (dialogWindow != null) { - dialogWindow.setWindowAnimations(R.style.picker_view_scale_anim); - dialogWindow.setGravity(Gravity.CENTER);//可以改成Bottom - } - - mDialog.setOnDismissListener(dialog -> { - if (onDismissListener != null) { - onDismissListener.onDismiss(BaseCustomHPickerView.this); - } - }); - } - } - - private void showDialog() { - if (mDialog != null) { - mDialog.show(); - } - } - - private void dismissDialog() { - if (mDialog != null) { - mDialog.dismiss(); - } - } - - public ViewGroup getDialogContainerLayout() { - return contentContainer; - } - - - public Dialog getDialog() { - return mDialog; - } - - - public boolean isDialog() { - return false; - } -} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/BaseCustomPickerView.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/BaseCustomPickerView.java deleted file mode 100755 index 3f3071d..0000000 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/BaseCustomPickerView.java +++ /dev/null @@ -1,354 +0,0 @@ -package com.sucstepsoft.cm_utils.core.widget.views; - -import android.annotation.SuppressLint; -import android.app.Activity; -import android.app.Dialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.view.Display; -import android.view.Gravity; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.view.animation.AnimationUtils; -import android.widget.FrameLayout; - -import com.bigkoo.pickerview.configure.PickerOptions; -import com.bigkoo.pickerview.listener.OnDismissListener; -import com.bigkoo.pickerview.utils.PickerViewAnimateUtil; -import com.sucstepsoft.cm_utils.R; - -public class BaseCustomPickerView { - private Context context; - protected ViewGroup contentContainer; - private ViewGroup rootView;//附加View 的 根View - private ViewGroup dialogView;//附加Dialog 的 根View - - protected PickerOptions mPickerOptions; - private OnDismissListener onDismissListener; - private boolean dismissing; - - private Animation outAnim; - private Animation inAnim; - private boolean isShowing; - - protected int animGravity = Gravity.BOTTOM; - - private Dialog mDialog; - protected View clickView;//是通过哪个View弹出的 - private boolean isAnim = true; - - public BaseCustomPickerView(Context context) { - this.context = context; - } - - - protected void initViews() { - - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM); - - LayoutInflater layoutInflater = LayoutInflater.from(context); - if (isDialog()) { - - //如果是对话框模式 - dialogView = (ViewGroup) layoutInflater.inflate(R.layout.layout_basepickerview, null, false); - //设置界面的背景为透明 - dialogView.setBackgroundColor(Color.TRANSPARENT); - //这个是真正要加载选择器的父布局 - contentContainer = (ViewGroup) dialogView.findViewById(R.id.content_container); - //设置对话框 默认左右间距屏幕30 -// params.leftMargin = 10; -// params.rightMargin = 10; - contentContainer.setLayoutParams(params); - //创建对话框 - createDialog(); - //给背景设置点击事件,这样当点击内容以外的地方会关闭界面 - dialogView.setOnClickListener(view -> dismiss()); - } else { - //如果只是要显示在屏幕的下方 - //decorView是activity的根View,包含 contentView 和 titleView - if (mPickerOptions.decorView == null) { - mPickerOptions.decorView = (ViewGroup) ((Activity) context).getWindow().getDecorView(); - } - //将控件添加到decorView中 - rootView = (ViewGroup) layoutInflater.inflate(R.layout.layout_basepickerview, mPickerOptions.decorView, false); - rootView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); - if (mPickerOptions.backgroundId != -1) { - rootView.setBackgroundColor(mPickerOptions.backgroundId); - } - //这个是真正要加载时间选取器的父布局 - contentContainer = (ViewGroup) rootView.findViewById(R.id.content_container); - contentContainer.setLayoutParams(params); - } - setKeyBackCancelable(true); - } - - protected void initAnim() { - inAnim = getInAnimation(); - outAnim = getOutAnimation(); - } - - protected void initEvents() { - } - - - /** - * @param v (是通过哪个View弹出的) - * @param isAnim 是否显示动画效果 - */ - public void show(View v, boolean isAnim) { - this.clickView = v; - this.isAnim = isAnim; - show(); - } - - public void show(boolean isAnim) { - this.isAnim = isAnim; - show(); - } - - public void show(View v) { - this.clickView = v; - show(); - } - - - /** - * 添加View到根视图 - */ - public void show() { - if (isDialog()) { - showDialog(); - } else { - if (isShowing()) { - return; - } - isShowing = true; - onAttached(rootView); - rootView.requestFocus(); - } - } - - - /** - * show的时候调用 - * - * @param view 这个View - */ - private void onAttached(View view) { - mPickerOptions.decorView.addView(view); - if (isAnim) { - contentContainer.startAnimation(inAnim); - } - } - - - /** - * 检测该View是不是已经添加到根视图 - * - * @return 如果视图已经存在该View返回true - */ - public boolean isShowing() { - if (isDialog()) { - return false; - } else { - return rootView.getParent() != null || isShowing; - } - - } - - public void dismiss() { - if (isDialog()) { - dismissDialog(); - } else { - if (dismissing) { - return; - } - - if (isAnim) { - //消失动画 - outAnim.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - - } - - @Override - public void onAnimationEnd(Animation animation) { - dismissImmediately(); - } - - @Override - public void onAnimationRepeat(Animation animation) { - - } - }); - contentContainer.startAnimation(outAnim); - } else { - dismissImmediately(); - } - dismissing = true; - } - - - } - - public void dismissImmediately() { - - mPickerOptions.decorView.post(new Runnable() { - @Override - public void run() { - //从根视图移除 - mPickerOptions.decorView.removeView(rootView); - isShowing = false; - dismissing = false; - if (onDismissListener != null) { - onDismissListener.onDismiss(BaseCustomPickerView.this); - } - } - }); - - - } - - private Animation getInAnimation() { - int res = PickerViewAnimateUtil.getAnimationResource(this.animGravity, true); - return AnimationUtils.loadAnimation(context, res); - } - - private Animation getOutAnimation() { - int res = PickerViewAnimateUtil.getAnimationResource(this.animGravity, false); - return AnimationUtils.loadAnimation(context, res); - } - - public BaseCustomPickerView setOnDismissListener(OnDismissListener onDismissListener) { - this.onDismissListener = onDismissListener; - return this; - } - - public void setKeyBackCancelable(boolean isCancelable) { - - ViewGroup View; - if (isDialog()) { - View = dialogView; - } else { - View = rootView; - } - - View.setFocusable(isCancelable); - View.setFocusableInTouchMode(isCancelable); - if (isCancelable) { - View.setOnKeyListener(onKeyBackListener); - } else { - View.setOnKeyListener(null); - } - } - - private View.OnKeyListener onKeyBackListener = (v, keyCode, event) -> { - if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == MotionEvent.ACTION_DOWN && isShowing()) { - dismiss(); - return true; - } - return false; - }; - - protected BaseCustomPickerView setOutSideCancelable(boolean isCancelable) { - - if (rootView != null) { - View view = rootView.findViewById(R.id.outmost_container); - - if (isCancelable) { - view.setOnTouchListener(onCancelableTouchListener); - } else { - view.setOnTouchListener(null); - } - } - - return this; - } - - /** - * 设置对话框模式是否可以点击外部取消 - */ - public void setDialogOutSideCancelable() { - if (mDialog != null) { - mDialog.setCancelable(mPickerOptions.cancelable); - } - } - - - /** - * Called when the user touch on black overlay, in order to dismiss the dialog. - */ - @SuppressLint("ClickableViewAccessibility") - private final View.OnTouchListener onCancelableTouchListener = (v, event) -> { - if (event.getAction() == MotionEvent.ACTION_DOWN) { - dismiss(); - } - return false; - }; - - public View findViewById(int id) { - return contentContainer.findViewById(id); - } - - public void createDialog() { - if (dialogView != null) { - mDialog = new Dialog(context, R.style.custom_dialog2); - mDialog.setCancelable(mPickerOptions.cancelable);//不能点外面取消,也不能点back取消 - mDialog.setContentView(dialogView); - - Window dialogWindow = mDialog.getWindow(); - WindowManager m = ((Activity) context).getWindowManager(); - Display d = m.getDefaultDisplay(); - WindowManager.LayoutParams p = dialogWindow.getAttributes(); - p.height = (int) (d.getHeight() * 0.5); - p.width = (int) (d.getWidth() * 0.9); - dialogWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - dialogWindow.setAttributes(p); - if (dialogWindow != null) { - dialogWindow.setWindowAnimations(R.style.picker_view_scale_anim); - dialogWindow.setGravity(Gravity.CENTER);//可以改成Bottom - } - - mDialog.setOnDismissListener(dialog -> { - if (onDismissListener != null) { - onDismissListener.onDismiss(BaseCustomPickerView.this); - } - }); - } - } - - private void showDialog() { - if (mDialog != null) { - mDialog.show(); - } - } - - private void dismissDialog() { - if (mDialog != null) { - mDialog.dismiss(); - } - } - - public ViewGroup getDialogContainerLayout() { - return contentContainer; - } - - - public Dialog getDialog() { - return mDialog; - } - - - public boolean isDialog() { - return false; - } -} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomPickerBuilder.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomPickerBuilder.java deleted file mode 100755 index 6509ca2..0000000 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomPickerBuilder.java +++ /dev/null @@ -1,247 +0,0 @@ -package com.sucstepsoft.cm_utils.core.widget.views; - -import android.content.Context; -import android.graphics.Typeface; -import android.view.ViewGroup; - -import com.bigkoo.pickerview.configure.PickerOptions; -import com.bigkoo.pickerview.listener.CustomListener; -import com.bigkoo.pickerview.listener.OnOptionsSelectChangeListener; -import com.bigkoo.pickerview.listener.OnOptionsSelectListener; - -public class CustomPickerBuilder { - //配置类 - private PickerOptions mPickerOptions; - - - //Required - public CustomPickerBuilder(Context context, OnOptionsSelectListener listener) { - mPickerOptions = new PickerOptions(PickerOptions.TYPE_PICKER_OPTIONS); - mPickerOptions.context = context; - mPickerOptions.optionsSelectListener = listener; - } - - //Option - public CustomPickerBuilder setSubmitText(String textContentConfirm) { - mPickerOptions.textContentConfirm = textContentConfirm; - return this; - } - - public CustomPickerBuilder setCancelText(String textContentCancel) { - mPickerOptions.textContentCancel = textContentCancel; - return this; - } - - public CustomPickerBuilder setTitleText(String textContentTitle) { - mPickerOptions.textContentTitle = textContentTitle; - return this; - } - - public CustomPickerBuilder isDialog(boolean isDialog) { - mPickerOptions.isDialog = isDialog; - return this; - } - - public CustomPickerBuilder setSubmitColor(int textColorConfirm) { - mPickerOptions.textColorConfirm = textColorConfirm; - return this; - } - - public CustomPickerBuilder setCancelColor(int textColorCancel) { - mPickerOptions.textColorCancel = textColorCancel; - return this; - } - - /** - * 显示时的外部背景色颜色,默认是灰色 - * - * @param backgroundId color resId. - * @return - */ - public CustomPickerBuilder setBackgroundId(int backgroundId) { - mPickerOptions.backgroundId = backgroundId; - return this; - } - - /** - * ViewGroup 类型 - * 设置PickerView的显示容器 - * - * @param decorView Parent View. - * @return - */ - public CustomPickerBuilder setDecorView(ViewGroup decorView) { - mPickerOptions.decorView = decorView; - return this; - } - - public CustomPickerBuilder setLayoutRes(int res, CustomListener listener) { - mPickerOptions.layoutRes = res; - mPickerOptions.customListener = listener; - return this; - } - - public CustomPickerBuilder setBgColor(int bgColorWheel) { - mPickerOptions.bgColorWheel = bgColorWheel; - return this; - } - - public CustomPickerBuilder setTitleBgColor(int bgColorTitle) { - mPickerOptions.bgColorTitle = bgColorTitle; - return this; - } - - public CustomPickerBuilder setTitleColor(int textColorTitle) { - mPickerOptions.textColorTitle = textColorTitle; - return this; - } - - public CustomPickerBuilder setSubCalSize(int textSizeSubmitCancel) { - mPickerOptions.textSizeSubmitCancel = textSizeSubmitCancel; - return this; - } - - public CustomPickerBuilder setTitleSize(int textSizeTitle) { - mPickerOptions.textSizeTitle = textSizeTitle; - return this; - } - - public CustomPickerBuilder setContentTextSize(int textSizeContent) { - mPickerOptions.textSizeContent = textSizeContent; - return this; - } - - public CustomPickerBuilder setOutSideCancelable(boolean cancelable) { - mPickerOptions.cancelable = cancelable; - return this; - } - - - public CustomPickerBuilder setLabels(String label1, String label2, String label3) { - mPickerOptions.label1 = label1; - mPickerOptions.label2 = label2; - mPickerOptions.label3 = label3; - return this; - } - - /** - * 设置Item 的间距倍数,用于控制 Item 高度间隔 - * - * @param lineSpacingMultiplier 浮点型,1.0-4.0f 之间有效,超过则取极值。 - */ - public CustomPickerBuilder setLineSpacingMultiplier(float lineSpacingMultiplier) { - mPickerOptions.lineSpacingMultiplier = lineSpacingMultiplier; - return this; - } - - /** - * Set item divider line type color. - * - * @param dividerColor color resId. - */ - public CustomPickerBuilder setDividerColor(int dividerColor) { - mPickerOptions.dividerColor = dividerColor; - return this; - } - -// /** -// * Set item divider line type. -// * -// * @param dividerType enum Type {@link WheelView.DividerType} -// */ -// public CustomPickerBuilder setDividerType(WheelView.DividerType dividerType) { -// mPickerOptions.dividerType = dividerType; -// return this; -// } - - /** - * Set the textColor of selected item. - * - * @param textColorCenter color res. - */ - public CustomPickerBuilder setTextColorCenter(int textColorCenter) { - mPickerOptions.textColorCenter = textColorCenter; - return this; - } - - /** - * Set the textColor of outside item. - * - * @param textColorOut color resId. - */ - public CustomPickerBuilder setTextColorOut(int textColorOut) { - mPickerOptions.textColorOut = textColorOut; - return this; - } - - public CustomPickerBuilder setTypeface(Typeface font) { - mPickerOptions.font = font; - return this; - } - - public CustomPickerBuilder setCyclic(boolean cyclic1, boolean cyclic2, boolean cyclic3) { - mPickerOptions.cyclic1 = cyclic1; - mPickerOptions.cyclic2 = cyclic2; - mPickerOptions.cyclic3 = cyclic3; - return this; - } - - public CustomPickerBuilder setSelectOptions(int option1) { - mPickerOptions.option1 = option1; - return this; - } - - public CustomPickerBuilder setSelectOptions(int option1, int option2) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - return this; - } - - public CustomPickerBuilder setSelectOptions(int option1, int option2, int option3) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - mPickerOptions.option3 = option3; - return this; - } - - public CustomPickerBuilder setTextXOffset(int xoffset_one, int xoffset_two, int xoffset_three) { - mPickerOptions.x_offset_one = xoffset_one; - mPickerOptions.x_offset_two = xoffset_two; - mPickerOptions.x_offset_three = xoffset_three; - return this; - } - - public CustomPickerBuilder isCenterLabel(boolean isCenterLabel) { - mPickerOptions.isCenterLabel = isCenterLabel; - return this; - } - - /** - * 切换选项时,是否还原第一项 - * - * @param isRestoreItem true:还原; false: 保持上一个选项 - * @return TimePickerBuilder - */ - public CustomPickerBuilder isRestoreItem(boolean isRestoreItem) { - mPickerOptions.isRestoreItem = isRestoreItem; - return this; - } - - /** - * @param listener 切换item项滚动停止时,实时回调监听。 - * @return - */ - public CustomPickerBuilder setOptionsSelectChangeListener(OnOptionsSelectChangeListener listener) { - mPickerOptions.optionsSelectChangeListener = listener; - return this; - } - - - public CustomPickerView build() { - return new CustomPickerView<>(mPickerOptions); - } - - public CustomPickerBuilder setDialog(int i, int i1) { - return null; - } -} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomPickerView.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomPickerView.java deleted file mode 100755 index 680f08a..0000000 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/CustomPickerView.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.sucstepsoft.cm_utils.core.widget.views; - -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.bigkoo.pickerview.configure.PickerOptions; -import com.bigkoo.pickerview.view.WheelOptions; -import com.sucstepsoft.cm_utils.R; - -import java.util.List; - -public class CustomPickerView extends BaseCustomPickerView implements View.OnClickListener { - private WheelOptions wheelOptions; - - private static final String TAG_SUBMIT = "submit"; - private static final String TAG_CANCEL = "cancel"; - - public CustomPickerView(PickerOptions pickerOptions) { - super(pickerOptions.context); - mPickerOptions = pickerOptions; - initView(pickerOptions.context); - } - - - private void initView(Context context) { - setDialogOutSideCancelable(); - initViews(); - initAnim(); - initEvents(); - if (mPickerOptions.customListener == null) { - LayoutInflater.from(context).inflate(mPickerOptions.layoutRes, contentContainer); - - //顶部标题 - TextView tvTitle = (TextView) findViewById(R.id.tvTitle); - RelativeLayout rv_top_bar = (RelativeLayout) findViewById(R.id.rv_topbar); - - //确定和取消按钮 - Button btnSubmit = (Button) findViewById(R.id.btnSubmit); - Button btnCancel = (Button) findViewById(R.id.btnCancel); - - btnSubmit.setTag(TAG_SUBMIT); - btnCancel.setTag(TAG_CANCEL); - btnSubmit.setOnClickListener(this); - btnCancel.setOnClickListener(this); - - //设置文字 - btnSubmit.setText(TextUtils.isEmpty(mPickerOptions.textContentConfirm) ? context.getResources().getString(R.string.pickerview_submit) : mPickerOptions.textContentConfirm); - btnCancel.setText(TextUtils.isEmpty(mPickerOptions.textContentCancel) ? context.getResources().getString(R.string.pickerview_cancel) : mPickerOptions.textContentCancel); - tvTitle.setText(TextUtils.isEmpty(mPickerOptions.textContentTitle) ? "" : mPickerOptions.textContentTitle);//默认为空 - - //设置color - btnSubmit.setTextColor(mPickerOptions.textColorConfirm); - btnCancel.setTextColor(mPickerOptions.textColorCancel); - tvTitle.setTextColor(mPickerOptions.textColorTitle); - rv_top_bar.setBackgroundColor(mPickerOptions.bgColorTitle); - - //设置文字大小 - btnSubmit.setTextSize(mPickerOptions.textSizeSubmitCancel); - btnCancel.setTextSize(mPickerOptions.textSizeSubmitCancel); - tvTitle.setTextSize(mPickerOptions.textSizeTitle); - } else { - mPickerOptions.customListener.customLayout(LayoutInflater.from(context).inflate(mPickerOptions.layoutRes, contentContainer)); - } - - // ----滚轮布局 - final LinearLayout optionsPicker = (LinearLayout) findViewById(R.id.optionspicker); - optionsPicker.setBackgroundColor(mPickerOptions.bgColorWheel); - - wheelOptions = new WheelOptions(optionsPicker, mPickerOptions.isRestoreItem); - if (mPickerOptions.optionsSelectChangeListener != null) { - wheelOptions.setOptionsSelectChangeListener(mPickerOptions.optionsSelectChangeListener); - } - - wheelOptions.setTextContentSize(mPickerOptions.textSizeContent); - wheelOptions.setLabels(mPickerOptions.label1, mPickerOptions.label2, mPickerOptions.label3); - wheelOptions.setTextXOffset(mPickerOptions.x_offset_one, mPickerOptions.x_offset_two, mPickerOptions.x_offset_three); - wheelOptions.setCyclic(mPickerOptions.cyclic1, mPickerOptions.cyclic2, mPickerOptions.cyclic3); - wheelOptions.setTypeface(mPickerOptions.font); - - setOutSideCancelable(mPickerOptions.cancelable); - - wheelOptions.setDividerColor(mPickerOptions.dividerColor); -// wheelOptions.setDividerType(mPickerOptions.dividerType); - wheelOptions.setLineSpacingMultiplier(mPickerOptions.lineSpacingMultiplier); - wheelOptions.setTextColorOut(mPickerOptions.textColorOut); - wheelOptions.setTextColorCenter(mPickerOptions.textColorCenter); - wheelOptions.isCenterLabel(mPickerOptions.isCenterLabel); - } - - /** - * 动态设置标题 - * - * @param text 标题文本内容 - */ - public void setTitleText(String text) { - TextView tvTitle = (TextView) findViewById(R.id.tvTitle); - if (tvTitle != null) { - tvTitle.setText(text); - } - } - - /** - * 设置默认选中项 - * - * @param option1 - */ - public void setSelectOptions(int option1) { - mPickerOptions.option1 = option1; - reSetCurrentItems(); - } - - - public void setSelectOptions(int option1, int option2) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - reSetCurrentItems(); - } - - public void setSelectOptions(int option1, int option2, int option3) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - mPickerOptions.option3 = option3; - reSetCurrentItems(); - } - - private void reSetCurrentItems() { - if (wheelOptions != null) { - wheelOptions.setCurrentItems(mPickerOptions.option1, mPickerOptions.option2, mPickerOptions.option3); - } - } - - public void setPicker(List optionsItems) { - this.setPicker(optionsItems, null, null); - } - - public void setPicker(List options1Items, List> options2Items) { - this.setPicker(options1Items, options2Items, null); - } - - public void setPicker(List options1Items, - List> options2Items, - List>> options3Items) { - - wheelOptions.setPicker(options1Items, options2Items, options3Items); - reSetCurrentItems(); - } - - - //不联动情况下调用 - public void setNPicker(List options1Items, - List options2Items, - List options3Items) { - - wheelOptions.setLinkage(false); - wheelOptions.setNPicker(options1Items, options2Items, options3Items); - reSetCurrentItems(); - } - - @Override - public void onClick(View v) { - String tag = (String) v.getTag(); - if (tag.equals(TAG_SUBMIT)) { - returnData(); - } - dismiss(); - } - - //抽离接口回调的方法 - public void returnData() { - if (mPickerOptions.optionsSelectListener != null) { - int[] optionsCurrentItems = wheelOptions.getCurrentItems(); - mPickerOptions.optionsSelectListener.onOptionsSelect(optionsCurrentItems[0], optionsCurrentItems[1], optionsCurrentItems[2], clickView); - } - } - - - @Override - public boolean isDialog() { - return mPickerOptions.isDialog; - } -} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/HCustomPickerBuilder.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/HCustomPickerBuilder.java deleted file mode 100755 index c05f8a3..0000000 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/HCustomPickerBuilder.java +++ /dev/null @@ -1,247 +0,0 @@ -package com.sucstepsoft.cm_utils.core.widget.views; - -import android.content.Context; -import android.graphics.Typeface; -import android.view.ViewGroup; - -import com.bigkoo.pickerview.configure.PickerOptions; -import com.bigkoo.pickerview.listener.CustomListener; -import com.bigkoo.pickerview.listener.OnOptionsSelectChangeListener; -import com.bigkoo.pickerview.listener.OnOptionsSelectListener; - -public class HCustomPickerBuilder { - //配置类 - private PickerOptions mPickerOptions; - - - //Required - public HCustomPickerBuilder(Context context, OnOptionsSelectListener listener) { - mPickerOptions = new PickerOptions(PickerOptions.TYPE_PICKER_OPTIONS); - mPickerOptions.context = context; - mPickerOptions.optionsSelectListener = listener; - } - - //Option - public HCustomPickerBuilder setSubmitText(String textContentConfirm) { - mPickerOptions.textContentConfirm = textContentConfirm; - return this; - } - - public HCustomPickerBuilder setCancelText(String textContentCancel) { - mPickerOptions.textContentCancel = textContentCancel; - return this; - } - - public HCustomPickerBuilder setTitleText(String textContentTitle) { - mPickerOptions.textContentTitle = textContentTitle; - return this; - } - - public HCustomPickerBuilder isDialog(boolean isDialog) { - mPickerOptions.isDialog = isDialog; - return this; - } - - public HCustomPickerBuilder setSubmitColor(int textColorConfirm) { - mPickerOptions.textColorConfirm = textColorConfirm; - return this; - } - - public HCustomPickerBuilder setCancelColor(int textColorCancel) { - mPickerOptions.textColorCancel = textColorCancel; - return this; - } - - /** - * 显示时的外部背景色颜色,默认是灰色 - * - * @param backgroundId color resId. - * @return - */ - public HCustomPickerBuilder setBackgroundId(int backgroundId) { - mPickerOptions.backgroundId = backgroundId; - return this; - } - - /** - * ViewGroup 类型 - * 设置PickerView的显示容器 - * - * @param decorView Parent View. - * @return - */ - public HCustomPickerBuilder setDecorView(ViewGroup decorView) { - mPickerOptions.decorView = decorView; - return this; - } - - public HCustomPickerBuilder setLayoutRes(int res, CustomListener listener) { - mPickerOptions.layoutRes = res; - mPickerOptions.customListener = listener; - return this; - } - - public HCustomPickerBuilder setBgColor(int bgColorWheel) { - mPickerOptions.bgColorWheel = bgColorWheel; - return this; - } - - public HCustomPickerBuilder setTitleBgColor(int bgColorTitle) { - mPickerOptions.bgColorTitle = bgColorTitle; - return this; - } - - public HCustomPickerBuilder setTitleColor(int textColorTitle) { - mPickerOptions.textColorTitle = textColorTitle; - return this; - } - - public HCustomPickerBuilder setSubCalSize(int textSizeSubmitCancel) { - mPickerOptions.textSizeSubmitCancel = textSizeSubmitCancel; - return this; - } - - public HCustomPickerBuilder setTitleSize(int textSizeTitle) { - mPickerOptions.textSizeTitle = textSizeTitle; - return this; - } - - public HCustomPickerBuilder setContentTextSize(int textSizeContent) { - mPickerOptions.textSizeContent = textSizeContent; - return this; - } - - public HCustomPickerBuilder setOutSideCancelable(boolean cancelable) { - mPickerOptions.cancelable = cancelable; - return this; - } - - - public HCustomPickerBuilder setLabels(String label1, String label2, String label3) { - mPickerOptions.label1 = label1; - mPickerOptions.label2 = label2; - mPickerOptions.label3 = label3; - return this; - } - - /** - * 设置Item 的间距倍数,用于控制 Item 高度间隔 - * - * @param lineSpacingMultiplier 浮点型,1.0-4.0f 之间有效,超过则取极值。 - */ - public HCustomPickerBuilder setLineSpacingMultiplier(float lineSpacingMultiplier) { - mPickerOptions.lineSpacingMultiplier = lineSpacingMultiplier; - return this; - } - - /** - * Set item divider line type color. - * - * @param dividerColor color resId. - */ - public HCustomPickerBuilder setDividerColor(int dividerColor) { - mPickerOptions.dividerColor = dividerColor; - return this; - } - -// /** -// * Set item divider line type. -// * -// * @param dividerType enum Type {@link WheelView.DividerType} -// */ -// public HCustomPickerBuilder setDividerType(WheelView.DividerType dividerType) { -// mPickerOptions.dividerType = dividerType; -// return this; -// } - - /** - * Set the textColor of selected item. - * - * @param textColorCenter color res. - */ - public HCustomPickerBuilder setTextColorCenter(int textColorCenter) { - mPickerOptions.textColorCenter = textColorCenter; - return this; - } - - /** - * Set the textColor of outside item. - * - * @param textColorOut color resId. - */ - public HCustomPickerBuilder setTextColorOut(int textColorOut) { - mPickerOptions.textColorOut = textColorOut; - return this; - } - - public HCustomPickerBuilder setTypeface(Typeface font) { - mPickerOptions.font = font; - return this; - } - - public HCustomPickerBuilder setCyclic(boolean cyclic1, boolean cyclic2, boolean cyclic3) { - mPickerOptions.cyclic1 = cyclic1; - mPickerOptions.cyclic2 = cyclic2; - mPickerOptions.cyclic3 = cyclic3; - return this; - } - - public HCustomPickerBuilder setSelectOptions(int option1) { - mPickerOptions.option1 = option1; - return this; - } - - public HCustomPickerBuilder setSelectOptions(int option1, int option2) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - return this; - } - - public HCustomPickerBuilder setSelectOptions(int option1, int option2, int option3) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - mPickerOptions.option3 = option3; - return this; - } - - public HCustomPickerBuilder setTextXOffset(int xoffset_one, int xoffset_two, int xoffset_three) { - mPickerOptions.x_offset_one = xoffset_one; - mPickerOptions.x_offset_two = xoffset_two; - mPickerOptions.x_offset_three = xoffset_three; - return this; - } - - public HCustomPickerBuilder isCenterLabel(boolean isCenterLabel) { - mPickerOptions.isCenterLabel = isCenterLabel; - return this; - } - - /** - * 切换选项时,是否还原第一项 - * - * @param isRestoreItem true:还原; false: 保持上一个选项 - * @return TimePickerBuilder - */ - public HCustomPickerBuilder isRestoreItem(boolean isRestoreItem) { - mPickerOptions.isRestoreItem = isRestoreItem; - return this; - } - - /** - * @param listener 切换item项滚动停止时,实时回调监听。 - * @return - */ - public HCustomPickerBuilder setOptionsSelectChangeListener(OnOptionsSelectChangeListener listener) { - mPickerOptions.optionsSelectChangeListener = listener; - return this; - } - - - public HCustomPickerView build() { - return new HCustomPickerView<>(mPickerOptions); - } - - public HCustomPickerBuilder setDialog(int i, int i1) { - return null; - } -} diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/HCustomPickerView.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/HCustomPickerView.java deleted file mode 100755 index 4b92938..0000000 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/core/widget/views/HCustomPickerView.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.sucstepsoft.cm_utils.core.widget.views; - -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.bigkoo.pickerview.configure.PickerOptions; -import com.bigkoo.pickerview.view.WheelOptions; -import com.sucstepsoft.cm_utils.R; - -import java.util.List; - -public class HCustomPickerView extends BaseCustomHPickerView implements View.OnClickListener { - private WheelOptions wheelOptions; - - private static final String TAG_SUBMIT = "submit"; - private static final String TAG_CANCEL = "cancel"; - - public HCustomPickerView(PickerOptions pickerOptions) { - super(pickerOptions.context); - mPickerOptions = pickerOptions; - initView(pickerOptions.context); - } - - - private void initView(Context context) { - setDialogOutSideCancelable(); - initViews(); - initAnim(); - initEvents(); - if (mPickerOptions.customListener == null) { - LayoutInflater.from(context).inflate(mPickerOptions.layoutRes, contentContainer); - - //顶部标题 - TextView tvTitle = (TextView) findViewById(R.id.tvTitle); - RelativeLayout rv_top_bar = (RelativeLayout) findViewById(R.id.rv_topbar); - - //确定和取消按钮 - Button btnSubmit = (Button) findViewById(R.id.btnSubmit); - Button btnCancel = (Button) findViewById(R.id.btnCancel); - - btnSubmit.setTag(TAG_SUBMIT); - btnCancel.setTag(TAG_CANCEL); - btnSubmit.setOnClickListener(this); - btnCancel.setOnClickListener(this); - - //设置文字 - btnSubmit.setText(TextUtils.isEmpty(mPickerOptions.textContentConfirm) ? context.getResources().getString(R.string.pickerview_submit) : mPickerOptions.textContentConfirm); - btnCancel.setText(TextUtils.isEmpty(mPickerOptions.textContentCancel) ? context.getResources().getString(R.string.pickerview_cancel) : mPickerOptions.textContentCancel); - tvTitle.setText(TextUtils.isEmpty(mPickerOptions.textContentTitle) ? "" : mPickerOptions.textContentTitle);//默认为空 - - //设置color - btnSubmit.setTextColor(mPickerOptions.textColorConfirm); - btnCancel.setTextColor(mPickerOptions.textColorCancel); - tvTitle.setTextColor(mPickerOptions.textColorTitle); - rv_top_bar.setBackgroundColor(mPickerOptions.bgColorTitle); - - //设置文字大小 - btnSubmit.setTextSize(mPickerOptions.textSizeSubmitCancel); - btnCancel.setTextSize(mPickerOptions.textSizeSubmitCancel); - tvTitle.setTextSize(mPickerOptions.textSizeTitle); - } else { - mPickerOptions.customListener.customLayout(LayoutInflater.from(context).inflate(mPickerOptions.layoutRes, contentContainer)); - } - - // ----滚轮布局 - final LinearLayout optionsPicker = (LinearLayout) findViewById(R.id.optionspicker); - optionsPicker.setBackgroundColor(mPickerOptions.bgColorWheel); - - wheelOptions = new WheelOptions(optionsPicker, mPickerOptions.isRestoreItem); - if (mPickerOptions.optionsSelectChangeListener != null) { - wheelOptions.setOptionsSelectChangeListener(mPickerOptions.optionsSelectChangeListener); - } - - wheelOptions.setTextContentSize(mPickerOptions.textSizeContent); - wheelOptions.setLabels(mPickerOptions.label1, mPickerOptions.label2, mPickerOptions.label3); - wheelOptions.setTextXOffset(mPickerOptions.x_offset_one, mPickerOptions.x_offset_two, mPickerOptions.x_offset_three); - wheelOptions.setCyclic(mPickerOptions.cyclic1, mPickerOptions.cyclic2, mPickerOptions.cyclic3); - wheelOptions.setTypeface(mPickerOptions.font); - - setOutSideCancelable(mPickerOptions.cancelable); - - wheelOptions.setDividerColor(mPickerOptions.dividerColor); -// wheelOptions.setDividerType(mPickerOptions.dividerType); - wheelOptions.setLineSpacingMultiplier(mPickerOptions.lineSpacingMultiplier); - wheelOptions.setTextColorOut(mPickerOptions.textColorOut); - wheelOptions.setTextColorCenter(mPickerOptions.textColorCenter); - wheelOptions.isCenterLabel(mPickerOptions.isCenterLabel); - } - - /** - * 动态设置标题 - * - * @param text 标题文本内容 - */ - public void setTitleText(String text) { - TextView tvTitle = (TextView) findViewById(R.id.tvTitle); - if (tvTitle != null) { - tvTitle.setText(text); - } - } - - /** - * 设置默认选中项 - * - * @param option1 - */ - public void setSelectOptions(int option1) { - mPickerOptions.option1 = option1; - reSetCurrentItems(); - } - - - public void setSelectOptions(int option1, int option2) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - reSetCurrentItems(); - } - - public void setSelectOptions(int option1, int option2, int option3) { - mPickerOptions.option1 = option1; - mPickerOptions.option2 = option2; - mPickerOptions.option3 = option3; - reSetCurrentItems(); - } - - private void reSetCurrentItems() { - if (wheelOptions != null) { - wheelOptions.setCurrentItems(mPickerOptions.option1, mPickerOptions.option2, mPickerOptions.option3); - } - } - - public void setPicker(List optionsItems) { - this.setPicker(optionsItems, null, null); - } - - public void setPicker(List options1Items, List> options2Items) { - this.setPicker(options1Items, options2Items, null); - } - - public void setPicker(List options1Items, - List> options2Items, - List>> options3Items) { - - wheelOptions.setPicker(options1Items, options2Items, options3Items); - reSetCurrentItems(); - } - - - //不联动情况下调用 - public void setNPicker(List options1Items, - List options2Items, - List options3Items) { - - wheelOptions.setLinkage(false); - wheelOptions.setNPicker(options1Items, options2Items, options3Items); - reSetCurrentItems(); - } - - @Override - public void onClick(View v) { - String tag = (String) v.getTag(); - if (tag.equals(TAG_SUBMIT)) { - returnData(); - } - dismiss(); - } - - //抽离接口回调的方法 - public void returnData() { - if (mPickerOptions.optionsSelectListener != null) { - int[] optionsCurrentItems = wheelOptions.getCurrentItems(); - mPickerOptions.optionsSelectListener.onOptionsSelect(optionsCurrentItems[0], optionsCurrentItems[1], optionsCurrentItems[2], clickView); - } - } - - - @Override - public boolean isDialog() { - return mPickerOptions.isDialog; - } -} diff --git a/cm_utils/src/main/res/drawable-xhdpi/ic_cb_checked.png b/cm_utils/src/main/res/drawable-xhdpi/ic_cb_checked.png new file mode 100644 index 0000000..fec766e Binary files /dev/null and b/cm_utils/src/main/res/drawable-xhdpi/ic_cb_checked.png differ diff --git a/cm_utils/src/main/res/drawable-xhdpi/ic_cb_unchecked.png b/cm_utils/src/main/res/drawable-xhdpi/ic_cb_unchecked.png new file mode 100644 index 0000000..dd6618d Binary files /dev/null and b/cm_utils/src/main/res/drawable-xhdpi/ic_cb_unchecked.png differ diff --git a/cm_utils/src/main/res/drawable-xhdpi/ic_divid_line_bottom.png b/cm_utils/src/main/res/drawable-xhdpi/ic_divid_line_bottom.png new file mode 100644 index 0000000..bc02cf1 Binary files /dev/null and b/cm_utils/src/main/res/drawable-xhdpi/ic_divid_line_bottom.png differ diff --git a/cm_utils/src/main/res/drawable-xhdpi/ic_edit_icon.png b/cm_utils/src/main/res/drawable-xhdpi/ic_edit_icon.png new file mode 100644 index 0000000..d691718 Binary files /dev/null and b/cm_utils/src/main/res/drawable-xhdpi/ic_edit_icon.png differ diff --git a/cm_utils/src/main/res/drawable/sel_radio_checkbox.xml b/cm_utils/src/main/res/drawable/sel_radio_checkbox.xml new file mode 100755 index 0000000..238163e --- /dev/null +++ b/cm_utils/src/main/res/drawable/sel_radio_checkbox.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/cm_utils/src/main/res/layout/layout_custom_loading_dialog.xml b/cm_utils/src/main/res/layout/layout_custom_loading_dialog.xml index 021666e..db5016f 100755 --- a/cm_utils/src/main/res/layout/layout_custom_loading_dialog.xml +++ b/cm_utils/src/main/res/layout/layout_custom_loading_dialog.xml @@ -19,8 +19,8 @@ @@ -32,7 +32,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:layout_marginTop="5dp" + android:layout_marginTop="10dp" android:layout_marginBottom="5dp" android:textColor="@color/white" android:textSize="15sp" diff --git a/moduleactivity/build.gradle b/moduleactivity/build.gradle index 71a2a57..448b5cf 100755 --- a/moduleactivity/build.gradle +++ b/moduleactivity/build.gradle @@ -62,7 +62,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" implementation "com.contrarywind:wheelview:${rootProject.ext.wheelVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" diff --git a/modulecultural/build.gradle b/modulecultural/build.gradle index b9a196e..88cea39 100755 --- a/modulecultural/build.gradle +++ b/modulecultural/build.gradle @@ -66,7 +66,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" implementation "com.contrarywind:wheelview:${rootProject.ext.wheelVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" diff --git a/modulemain/build.gradle b/modulemain/build.gradle index 065b803..c300a17 100755 --- a/modulemain/build.gradle +++ b/modulemain/build.gradle @@ -72,7 +72,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" //glide diff --git a/modulemap/build.gradle b/modulemap/build.gradle index 9bee002..b96abee 100755 --- a/modulemap/build.gradle +++ b/modulemap/build.gradle @@ -63,7 +63,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" //glide diff --git a/modulemine/build.gradle b/modulemine/build.gradle index 4692110..c67282b 100755 --- a/modulemine/build.gradle +++ b/modulemine/build.gradle @@ -58,7 +58,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" implementation "com.contrarywind:wheelview:${rootProject.ext.wheelVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" diff --git a/modulemine/src/main/java/com/tengshisoft/modulemine/fragments/MineMainFragment.java b/modulemine/src/main/java/com/tengshisoft/modulemine/fragments/MineMainFragment.java index b8d9f76..51c558b 100755 --- a/modulemine/src/main/java/com/tengshisoft/modulemine/fragments/MineMainFragment.java +++ b/modulemine/src/main/java/com/tengshisoft/modulemine/fragments/MineMainFragment.java @@ -78,8 +78,18 @@ public class MineMainFragment extends BaseFragment { TypeFaceTextView mTvNickName; private Unbinder mBind; private List mFuncBeans = new ArrayList<>(); - private String[] mTitles = new String[]{"我的分享", "我的活动", "我的志愿团队", "我的志愿活动", "我的订单", "我的收藏", "设置"}; - private int[] mIcons = new int[]{R.drawable.ic_mine_activity, R.drawable.ic_mine_activity, R.drawable.ic_mine_team, R.drawable.ic_mine_order_icon, R.drawable.ic_mine_order, R.drawable.ic_mine_collect_icon, R.drawable.ic_mine_setting_icon}; + private String[] mTitles = new String[]{"我的分享", "我的活动", "我的志愿团队", "我的志愿活动", "我的场馆订单", "我的收藏", "收货地址", "购物车", + "我的商城订单", "设置"}; + private int[] mIcons = new int[]{R.drawable.ic_mine_activity, + R.drawable.ic_mine_activity, + R.drawable.ic_mine_team, + R.drawable.ic_mine_order_icon, + R.drawable.ic_mine_order, + R.drawable.ic_mine_collect_icon, + R.drawable.ic_mine_shop_address, + R.drawable.ic_mine_shipping_car, + R.drawable.ic_mine_order_list, + R.drawable.ic_mine_setting_icon}; @Override protected void setDataToView(View dataView) { @@ -163,6 +173,15 @@ public class MineMainFragment extends BaseFragment { case "我的分享": pagePath = PathConfig.PATH_MODULE_CULTURAL_ACTIVITY_SHARE_MINE_LIST; break; + case "收货地址": + pagePath= PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ADDRESS; + break; + case "购物车": + pagePath=PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_CAR; + break; + case "我的商城订单": + pagePath=PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_MINE_ORDER; + break; } ARouter.getInstance() .build(pagePath).navigation(); @@ -176,7 +195,8 @@ public class MineMainFragment extends BaseFragment { private String mPhotoPath; private void checkPhotoPermission() { - PermissionUtils.permission(PermissionConstants.CAMERA, PermissionConstants.STORAGE, PermissionConstants.MICROPHONE) + PermissionUtils.permission(PermissionConstants.CAMERA, PermissionConstants.STORAGE, + PermissionConstants.MICROPHONE) .callback(new PermissionUtils.SimpleCallback() { @Override public void onGranted() { @@ -285,7 +305,8 @@ public class MineMainFragment extends BaseFragment { @Override public void onSuccess(File file) { RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); - MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); + MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), + requestFile); RetrofitManager.getInstance() .create(BaseApiService.class) .uploadImgToUserCenter(body, UserLgUtils.getToken()) diff --git a/modulemine/src/main/res/drawable-xhdpi/ic_mine_order_list.png b/modulemine/src/main/res/drawable-xhdpi/ic_mine_order_list.png new file mode 100644 index 0000000..c41db10 Binary files /dev/null and b/modulemine/src/main/res/drawable-xhdpi/ic_mine_order_list.png differ diff --git a/modulemine/src/main/res/drawable-xhdpi/ic_mine_shipping_car.png b/modulemine/src/main/res/drawable-xhdpi/ic_mine_shipping_car.png new file mode 100644 index 0000000..32f56b4 Binary files /dev/null and b/modulemine/src/main/res/drawable-xhdpi/ic_mine_shipping_car.png differ diff --git a/modulemine/src/main/res/drawable-xhdpi/ic_mine_shop_address.png b/modulemine/src/main/res/drawable-xhdpi/ic_mine_shop_address.png new file mode 100644 index 0000000..28ee160 Binary files /dev/null and b/modulemine/src/main/res/drawable-xhdpi/ic_mine_shop_address.png differ diff --git a/moduleplace/build.gradle b/moduleplace/build.gradle index 37f619d..1e98b96 100755 --- a/moduleplace/build.gradle +++ b/moduleplace/build.gradle @@ -55,7 +55,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" //glide diff --git a/moduleshop/build.gradle b/moduleshop/build.gradle index 59ba647..5fc5619 100644 --- a/moduleshop/build.gradle +++ b/moduleshop/build.gradle @@ -60,7 +60,7 @@ dependencies { //butterknife annotationProcessor "com.jakewharton:butterknife-compiler:${rootProject.ext.gButterKnifeVersion}" //选择器 - implementation "com.contrarywind:Android-PickerView:${rootProject.ext.pickerViewVersion}" + implementation "com.contrarywind:Android-PickerView:${rootProject.ext.gPickerViewVersion}" //gson implementation "com.google.code.gson:gson:${rootProject.ext.supportGson}" //glide diff --git a/moduleshop/src/main/AndroidManifest.xml b/moduleshop/src/main/AndroidManifest.xml index a6d4484..793ee9d 100644 --- a/moduleshop/src/main/AndroidManifest.xml +++ b/moduleshop/src/main/AndroidManifest.xml @@ -1,24 +1,45 @@ + package="com.tenlionsoft.moduleshop"> + + + + + + + + + mCarDatas = new ArrayList<>(); + private List mDatas = new ArrayList<>(); + private OrderConfirmGoodsAdapter mAdapter; + private ShippingAddressBean mAddressBean; + + @Override + protected int setLayoutId() { + return R.layout.activity_order_confirm; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mTvBaseTitle.setText("订单确认"); + mAdapter = new OrderConfirmGoodsAdapter(mActivity, mDatas); + mRlvGoods.setLayoutManager(new LinearLayoutManager(mActivity)); + mRlvGoods.setAdapter(mAdapter); + mLlChooseAddress.setOnClickListener(v -> ARouter.getInstance() + .build(PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ADDRESS) + .withInt("type", 1)//选择地址 + .navigation(mActivity, 13)); + getDefaultAddress(); + parserShopCar(); + } + + /** + * 获取默认地址 + */ + private void getDefaultAddress() { + RetrofitManager.getInstance() + .create(ShopApi.class) + .getDefaultAddress(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ShippingAddressBean shippingAddressBean) { + setAddress(shippingAddressBean); + } + + @Override + public void onError(Throwable e) { + ExceptionHandler.handleException(e); + e.printStackTrace(); + refreshView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + private void setAddress(ShippingAddressBean b) { + refreshView(STATE_LOAD_SUCCESS); + mAddressBean = b; + mTvAddressArea.setText(b.getAreaName()); + mTvAddressContent.setText(b.getShopAddressContent()); + mTvName.setText(b.getShopAddressName() + " " + b.getShopAddressPhone()); + } + + private void parserShopCar() { + try { + String shopCar = UserLgUtils.getShopCar(); + if (!TextUtils.isEmpty(shopCar)) { + Gson gson = new Gson(); + Type type = new TypeToken>() { + }.getType(); + mCarDatas = gson.fromJson(shopCar, type); + LogUtils.e("购物车数据===" + mCarDatas); + if (mCarDatas != null && mCarDatas.size() > 0) { + for (int i = 0; i < mCarDatas.size(); i++) { + ShopGoodsDetailBean bean = mCarDatas.get(i); + if (bean.isCheck()) { + mDatas.add(bean); + } + } + countPrice(); + mAdapter.setData(mDatas); + } else { + refreshView(STATE_LOAD_ERROR); + mTvErrorHint.setText("系统错误,请重新提交"); + } + } else { + refreshView(STATE_LOAD_ERROR); + mTvErrorHint.setText("系统错误,请重新提交"); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 计算总价 + */ + private void countPrice() { + double price = 0.0; + for (int i = 0; i < mDatas.size(); i++) { + price += (mDatas.get(i).getCarAmount() * mDatas.get(i).getGoodsPrice()); + } + mTvPrice.setText(price + ""); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 13) { + if (resultCode == RESULT_OK) { + ShippingAddressBean addressBean = (ShippingAddressBean) data.getSerializableExtra("bean"); + LogUtils.e(addressBean); + setAddress(addressBean); + } + } + } +} \ No newline at end of file diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShippingAddressActivity.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShippingAddressActivity.java new file mode 100644 index 0000000..fa607fa --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShippingAddressActivity.java @@ -0,0 +1,193 @@ +package com.tenlionsoft.moduleshop.activitys; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.view.View; +import android.widget.LinearLayout; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.alibaba.android.arouter.launcher.ARouter; +import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.beans.BaseSuccessBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.utils.ExceptionHandler; +import com.sucstepsoft.cm_utils.utils.UIUtil; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.cm_utils.utils.toast.ToastUtils; +import com.tenlionsoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R2; +import com.tenlionsoft.moduleshop.adapter.ShippingAddressAdapter; +import com.tenlionsoft.moduleshop.beans.ShippingAddressBean; +import com.tenlionsoft.moduleshop.net.ShopApi; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * 收货地址 + */ +@Route(path = PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ADDRESS) +public class ShippingAddressActivity extends BaseActivity { + + @BindView(R2.id.ll_empty_h) + LinearLayout mLlEmptyH; + @BindView(R2.id.rlv_address) + RecyclerView mRlvAddress; + @BindView(R2.id.ll_add_address) + LinearLayout mLlAddAddress; + private int mType;//1选择 2查看 + private List mDatas = new ArrayList<>(); + private ShippingAddressAdapter mAdapter; + private ShippingAddressBean mCurrentBean; + + @Override + protected int setLayoutId() { + return R.layout.activity_shipping_address; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mTvBaseTitle.setText("收货地址"); + refreshView(STATE_LOAD_SUCCESS); + mType = getIntent().getIntExtra("type", 2); + mAdapter = new ShippingAddressAdapter(mActivity, mDatas); + mRlvAddress.setLayoutManager(new LinearLayoutManager(mActivity)); + mRlvAddress.setAdapter(mAdapter); + mLlAddAddress.setOnClickListener(v -> ARouter.getInstance() + .build(PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ADD_ADDRESS) + .navigation(mActivity, 12)); + if (mType == 1) { + mTvPublish.setVisibility(View.VISIBLE); + mTvPublish.setText("确定"); + mTvPublish.setOnClickListener(v -> { + Intent intent = new Intent(); + intent.putExtra("bean", mCurrentBean); + setResult(RESULT_OK, intent); + finish(); + }); + } else { + mTvPublish.setVisibility(View.GONE); + } + //选择 + mAdapter.addOnItemSelectListener((b, i) -> setAddressDefault(b)); + // + mAdapter.addOnEditListener((b, i) -> ARouter.getInstance() + .build(PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ADD_ADDRESS) + .withSerializable("bean", mCurrentBean) + .withInt("type", 3) + .navigation(mActivity, 12)); + getAddressList(); + } + + /** + * 设置默认地址 + */ + private void setAddressDefault(ShippingAddressBean b) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "设置中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(ShopApi.class) + .doSetDefaultAddress(b.getShopAddressId(), UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseSuccessBean baseSuccessBean) { + dialog.dismiss(); + ToastUtils.show("设置成功"); + getAddressList(); + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 获取地址列表 + */ + private void getAddressList() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(ShopApi.class) + .getShippingAddressList(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List shippingAddressBeans) { + dialog.dismiss(); + if (shippingAddressBeans.size() > 0) { + mDatas = shippingAddressBeans; + mLlEmptyH.setVisibility(View.GONE); + mRlvAddress.setVisibility(View.VISIBLE); + for (int i = 0; i < mDatas.size(); i++) { + ShippingAddressBean bean = mDatas.get(i); + if ("1".equals(bean.getShopAddressDefault())) { + mCurrentBean = bean; + break; + } + } + mAdapter.setData(mDatas); + } else { + mLlEmptyH.setVisibility(View.VISIBLE); + mRlvAddress.setVisibility(View.GONE); + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + refreshView(STATE_LOAD_ERROR); + } + + @Override + public void onComplete() { + + } + }); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12) { + if (resultCode == RESULT_OK) { + getAddressList(); + } + } + } +} \ No newline at end of file diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopAddAddressActivity.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopAddAddressActivity.java new file mode 100644 index 0000000..ffc957d --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopAddAddressActivity.java @@ -0,0 +1,578 @@ +package com.tenlionsoft.moduleshop.activitys; + +import android.app.ProgressDialog; +import android.graphics.Color; +import android.text.TextUtils; +import android.widget.EditText; +import android.widget.LinearLayout; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.bigkoo.pickerview.builder.OptionsPickerBuilder; +import com.bigkoo.pickerview.view.OptionsPickerView; +import com.google.gson.Gson; +import com.sucstepsoft.cm_utils.constant.PathConfig; +import com.sucstepsoft.cm_utils.core.beans.AreaBean; +import com.sucstepsoft.cm_utils.core.beans.BaseSuccessBean; +import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; +import com.sucstepsoft.cm_utils.core.retrofit_net.api.BaseApiService; +import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; +import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; +import com.sucstepsoft.cm_utils.utils.ExceptionHandler; +import com.sucstepsoft.cm_utils.utils.UIUtil; +import com.sucstepsoft.cm_utils.utils.UserLgUtils; +import com.sucstepsoft.cm_utils.utils.toast.ToastUtils; +import com.tenlionsoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R2; +import com.tenlionsoft.moduleshop.beans.SaveAddressBean; +import com.tenlionsoft.moduleshop.beans.ShippingAddressBean; +import com.tenlionsoft.moduleshop.net.ShopApi; + +import java.util.List; + +import butterknife.BindView; +import butterknife.ButterKnife; +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.RequestBody; + +/** + * 添加或编辑收货地址 + */ + +@Route(path = PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ADD_ADDRESS) +public class ShopAddAddressActivity extends BaseActivity { + @BindView(R2.id.tv_area1) + TypeFaceTextView mTvArea1; + @BindView(R2.id.tv_area2) + TypeFaceTextView mTvArea2; + @BindView(R2.id.tv_area3) + TypeFaceTextView mTvArea3; + @BindView(R2.id.tv_area4) + TypeFaceTextView mTvArea4; + @BindView(R2.id.et_detail) + EditText mEtDetail; + @BindView(R2.id.et_name) + EditText mEtName; + @BindView(R2.id.et_phone) + EditText mEtPhone; + @BindView(R2.id.et_zipcode) + EditText mEtZipCode; + @BindView(R2.id.ll_confirm) + LinearLayout mLlConfirm; + private int mType; + private ShippingAddressBean mBean; + + private AreaBean mSelArea1; + private AreaBean mSelArea2; + private AreaBean mSelArea3; + private AreaBean mSelArea4; + private List mArea1; + private List mArea2; + private List mArea3; + private List mArea4; + private OptionsPickerView mArea1Picker; + private OptionsPickerView mArea2Picker; + private OptionsPickerView mArea3Picker; + private OptionsPickerView mArea4Picker; + + + @Override + protected int setLayoutId() { + return R.layout.activity_shop_add_address; + } + + @Override + public void initData() { + ButterKnife.bind(this); + mTvBaseTitle.setText("收货地址"); + refreshView(STATE_LOAD_SUCCESS); + mType = getIntent().getIntExtra("type", 2); + if (2 == mType) { + //新增 + mLlConfirm.setOnClickListener(v -> doSaveAddress()); + } else { + //编辑 + mBean = (ShippingAddressBean) getIntent().getSerializableExtra("bean"); + setDetailBean(); + mLlConfirm.setOnClickListener(v -> doUpdateAddress()); + } + mTvArea1.setOnClickListener(v -> onShowArea1()); + mTvArea2.setOnClickListener(v -> onShowArea2()); + mTvArea3.setOnClickListener(v -> onShowArea3()); + mTvArea4.setOnClickListener(v -> onShowArea4()); + } + + + private void setDetailBean() { + String[] s = mBean.getAreaName().split(" "); + mTvArea1.setText(s[0]); + mTvArea2.setText(s[1]); + mTvArea3.setText(s[2]); + mTvArea4.setText(s[3]); + mSelArea4 = new AreaBean(); + mSelArea4.setAreaId(mBean.getAreaId()); + mSelArea4.setAreaCode(mBean.getAreaCode()); + mSelArea4.setAreaName(mBean.getAreaName()); + mEtName.setText(mBean.getShopAddressName()); + mEtPhone.setText(mBean.getShopAddressPhone()); + mEtZipCode.setText(mBean.getShopAddressZipcode()); + mEtDetail.setText(mBean.getShopAddressContent()); + getArea4Detail(); + } + + + private void getAreaList(String areaId, int type) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(BaseApiService.class) + .getArea(areaId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(List areaBeans) { + dialog.dismiss(); + switch (type) { + case 1: + mArea1 = areaBeans; + onShowArea1(); + break; + case 2: + mArea2 = areaBeans; + onShowArea2(); + break; + case 3: + mArea3 = areaBeans; + onShowArea3(); + break; + case 4: + mArea4 = areaBeans; + onShowArea4(); + break; + } + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + e.printStackTrace(); + } + + @Override + public void onComplete() { + + } + }); + } + + + private void onShowArea1() { + if (mArea1 != null && mArea1.size() > 0) { + mArea1Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> { + mSelArea1 = mArea1.get(options1); + mTvArea1.setText(mSelArea1.getAreaName()); + mArea2 = null; + mSelArea2 = null; + mTvArea2.setText(""); + + mArea3 = null; + mSelArea3 = null; + mTvArea3.setText(""); + + mArea4 = null; + mSelArea4 = null; + mTvArea4.setText(""); + + }).setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mArea1Picker.setPicker(mArea1); + mArea1Picker.show(); + } else { + if (mArea1 == null) { + getAreaList("0", 1); + } else { + ToastUtils.showShort("暂无数据"); + } + } + } + + private void onShowArea2() { + if (mArea2 != null && mArea2.size() > 0) { + mArea2Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> { + mSelArea2 = mArea2.get(options1); + mTvArea2.setText(mSelArea2.getAreaName()); + + mArea3 = null; + mSelArea3 = null; + mTvArea3.setText(""); + + mArea4 = null; + mSelArea4 = null; + mTvArea4.setText(""); + + }).setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mArea2Picker.setPicker(mArea2); + mArea2Picker.show(); + } else { + if (mArea2 == null) { + if (mSelArea1 == null) { + ToastUtils.show("请选省份"); + } else { + getAreaList(mSelArea1.getAreaId(), 2); + } + } else { + ToastUtils.showShort("暂无数据"); + } + } + } + + private void onShowArea3() { + if (mArea3 != null && mArea3.size() > 0) { + mArea3Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> { + mSelArea3 = mArea3.get(options1); + mTvArea3.setText(mSelArea3.getAreaName()); + + mArea4 = null; + mSelArea4 = null; + mTvArea4.setText(""); + }).setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mArea3Picker.setPicker(mArea3); + mArea3Picker.show(); + } else { + if (mArea3 == null) { + if (mSelArea2 == null) { + ToastUtils.show("请选择市"); + } else { + getAreaList(mSelArea2.getAreaId(), 3); + } + } else { + ToastUtils.showShort("暂无数据"); + } + } + } + + private void onShowArea4() { + if (mArea4 != null && mArea4.size() > 0) { + mArea4Picker = new OptionsPickerBuilder(mActivity, (options1, options2, options3, v) -> { + mSelArea4 = mArea4.get(options1); + mTvArea4.setText(mSelArea4.getAreaName()); + }).setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mArea4Picker.setPicker(mArea4); + mArea4Picker.show(); + } else { + if (mArea4 == null) { + if (mSelArea3 != null) { + getAreaList(mSelArea3.getAreaId(), 4); + } else { + ToastUtils.show("请选择县区"); + } + } else { + ToastUtils.showShort("暂无数据"); + } + } + } + + private boolean checkParams() { + if (mSelArea1 == null) { + ToastUtils.show("请选择省份"); + return false; + } + + if (mSelArea2 == null) { + ToastUtils.show("请选择市"); + return false; + } + if (mSelArea3 == null) { + ToastUtils.show("请选择区县"); + return false; + } + if (mSelArea4 == null) { + ToastUtils.show("请选择乡镇、街道"); + return false; + } + String detail = mEtDetail.getText().toString().trim(); + if (TextUtils.isEmpty(detail)) { + ToastUtils.show("请输入详细地址"); + return false; + } + String name = mEtName.getText().toString().trim(); + if (TextUtils.isEmpty(name)) { + ToastUtils.show("请输入收货人姓名"); + return false; + } + String phone = mEtPhone.getText().toString().trim(); + if (TextUtils.isEmpty(phone)) { + ToastUtils.show("请输入联系方式"); + return false; + } + + return true; + } + + + private RequestBody buildParams() { + SaveAddressBean bean = new SaveAddressBean(); + bean.setAreaCode(mSelArea4.getAreaCode()); + bean.setAreaId(mSelArea4.getAreaId()); + StringBuilder sb = new StringBuilder(); + sb.append(mSelArea1.getAreaName()); + sb.append(" "); + sb.append(mSelArea2.getAreaName()); + sb.append(" "); + sb.append(mSelArea3.getAreaName()); + sb.append(" "); + sb.append(mSelArea4.getAreaName()); + bean.setAreaName(sb.toString()); + String detail = mEtDetail.getText().toString().trim(); + String name = mEtName.getText().toString().trim(); + String phone = mEtPhone.getText().toString().trim(); + bean.setShopAddressContent(detail); + bean.setShopAddressName(name); + bean.setShopAddressPhone(phone); + String zipcode = mEtZipCode.getText().toString().trim(); + bean.setShopAddressZipcode(zipcode); + Gson gson = new Gson(); + String obj = gson.toJson(bean); + RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); + return body; + } + + /** + * 更新地址 + */ + private void doUpdateAddress() { + if (checkParams()) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中..."); + dialog.show(); + RequestBody body = buildParams(); + RetrofitManager.getInstance() + .create(ShopApi.class) + .doEditAddress(body, mBean.getShopAddressId(), UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseSuccessBean baseSuccessBean) { + dialog.dismiss(); + ToastUtils.show("更新成功"); + setResult(RESULT_OK); + finish(); + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + e.printStackTrace(); + } + + @Override + public void onComplete() { + + } + }); + } + } + + /** + * 新增地址 + */ + private void doSaveAddress() { + if (checkParams()) { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "保存中..."); + dialog.show(); + RequestBody body = buildParams(); + RetrofitManager.getInstance() + .create(ShopApi.class) + .doSaveAddress(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseSuccessBean baseSuccessBean) { + dialog.dismiss(); + ToastUtils.show("新增成功"); + setResult(RESULT_OK); + finish(); + } + + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + e.printStackTrace(); + } + + @Override + public void onComplete() { + + } + }); + } + } + + private void getArea1Detail(ProgressDialog dialog) { + RetrofitManager.getInstance() + .create(BaseApiService.class) + .getAreaDetail(mSelArea2.getAreaParentId()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(AreaBean areaBeans) { + mSelArea1 = areaBeans; + dialog.dismiss(); + } + + @Override + public void onError(Throwable e) { + refreshView(STATE_LOAD_ERROR); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + private void getArea2Detail(ProgressDialog dialog) { + RetrofitManager.getInstance() + .create(BaseApiService.class) + .getAreaDetail(mSelArea3.getAreaParentId()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(AreaBean areaBeans) { + mSelArea2 = areaBeans; + getArea1Detail(dialog); + } + + @Override + public void onError(Throwable e) { + refreshView(STATE_LOAD_ERROR); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + private void getArea3Detail(ProgressDialog dialog) { + RetrofitManager.getInstance() + .create(BaseApiService.class) + .getAreaDetail(mSelArea4.getAreaParentId()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(AreaBean areaBeans) { + mSelArea3 = areaBeans; + getArea2Detail(dialog); + } + + @Override + public void onError(Throwable e) { + refreshView(STATE_LOAD_ERROR); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + private void getArea4Detail() { + ProgressDialog dialog = UIUtil.initDialog(mActivity, "加载中..."); + dialog.show(); + RetrofitManager.getInstance() + .create(BaseApiService.class) + .getAreaDetail(mSelArea4.getAreaId()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(AreaBean areaBeans) { + mSelArea4 = areaBeans; + getArea3Detail(dialog); + } + + @Override + public void onError(Throwable e) { + refreshView(STATE_LOAD_ERROR); + dialog.dismiss(); + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } +} \ No newline at end of file diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopCarActivity.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopCarActivity.java index 0178cb0..41fb965 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopCarActivity.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/activitys/ShopCarActivity.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; +import com.alibaba.android.arouter.launcher.ARouter; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.sucstepsoft.cm_utils.constant.PathConfig; @@ -18,10 +19,10 @@ import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.cm_utils.utils.UserLgUtils; -import com.tengshisoft.moduleshop.R; -import com.tengshisoft.moduleshop.R2; +import com.sucstepsoft.cm_utils.utils.toast.ToastUtils; +import com.tenlionsoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R2; import com.tenlionsoft.moduleshop.adapter.CarGoodsAdapter; -import com.tenlionsoft.moduleshop.beans.CustomCarBean; import com.tenlionsoft.moduleshop.beans.ShopGoodsDetailBean; import java.lang.reflect.Type; @@ -45,7 +46,6 @@ public class ShopCarActivity extends BaseActivity { @BindView(R2.id.tv_confirm) TypeFaceTextView mTvConfirm; private List mCarDatas = new ArrayList<>(); - private List mDatas; private CarGoodsAdapter mAdapter; @Override @@ -57,7 +57,6 @@ public class ShopCarActivity extends BaseActivity { public void initData() { ButterKnife.bind(this); mTvBaseTitle.setText("购物车"); - mDatas = new ArrayList<>(); mAdapter = new CarGoodsAdapter(mActivity, mCarDatas); mRlvCar.setLayoutManager(new LinearLayoutManager(mActivity)); mRlvCar.setAdapter(mAdapter); @@ -119,7 +118,23 @@ public class ShopCarActivity extends BaseActivity { * 提交订单 */ private void doSaveOrder() { - + boolean flag = false; + for (int i = 0; i < mCarDatas.size(); i++) { + ShopGoodsDetailBean bean = mCarDatas.get(i); + if (bean.isCheck()) { + flag = true; + break; + } + } + if (flag) { + toSaveLocalData(); + finish(); + ARouter.getInstance() + .build(PathConfig.PATH_MODULE_SHOP_ACTIVITY_SHOP_ORDER_CONFIRM) + .navigation(); + } else { + ToastUtils.show("请选择要购买的商品"); + } } diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/CarGoodsAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/CarGoodsAdapter.java index f60283f..7839e58 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/CarGoodsAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/CarGoodsAdapter.java @@ -11,7 +11,7 @@ import com.bumptech.glide.request.RequestOptions; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; import com.sucstepsoft.cm_utils.core.widget.views.AddOrDelView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.ShopGoodsDetailBean; import com.tenlionsoft.moduleshop.holder.CarGoodsHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsCarAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsCarAdapter.java index 1d5814c..3408c45 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsCarAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsCarAdapter.java @@ -8,7 +8,7 @@ import android.view.ViewGroup; import androidx.recyclerview.widget.LinearLayoutManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.CustomCarBean; import com.tenlionsoft.moduleshop.beans.ShopGoodsDetailBean; import com.tenlionsoft.moduleshop.holder.GoodsCarHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsStandardAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsStandardAdapter.java index ab67130..02861ea 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsStandardAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/GoodsStandardAdapter.java @@ -10,7 +10,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.GoodsStandardBean; import com.tenlionsoft.moduleshop.holder.GoodsStandardHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/OrderConfirmGoodsAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/OrderConfirmGoodsAdapter.java new file mode 100644 index 0000000..ece9eae --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/OrderConfirmGoodsAdapter.java @@ -0,0 +1,84 @@ +package com.tenlionsoft.moduleshop.adapter; + +import android.content.Context; +import android.text.Html; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; +import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; +import com.tenlionsoft.moduleshop.R; +import com.tenlionsoft.moduleshop.beans.ShopGoodsDetailBean; +import com.tenlionsoft.moduleshop.holder.OrderConfirmGoodsHolder; + +import java.util.List; + +/** + * 确认订单商品适配器 + */ +public class OrderConfirmGoodsAdapter extends BaseRecyclerAdapter { + + public OrderConfirmGoodsAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public OrderConfirmGoodsHolder createHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(mContext).inflate(R.layout.item_order_confirm_goods, parent, false); + return new OrderConfirmGoodsHolder(view); + } + + @Override + public void bindHolder(OrderConfirmGoodsHolder h, int i) { + ShopGoodsDetailBean bean = mData.get(i); + h.mTvName.setText(Html.fromHtml(bean.getGoodsName())); + Glide.with(mContext) + .load(BaseUrlApi.BASE_SHOP_IMG_URL + bean.getGoodsIcon()) + .apply(new RequestOptions() + .placeholder(R.drawable.ic_img_default) + .error(R.drawable.ic_img_default)) + .into(h.mIvIcon); + h.mTvPrice.setText("¥ " + bean.getGoodsPrice()); + h.mTvSales.setText("销量:" + bean.getGoodsSalesVolume() + ""); + h.mTvFreight.setText("1".equals(bean.getGoodsNotFreight()) ? "不包邮" : "包邮"); + h.mTvEvaluate.setText("评分:" + bean.getGoodStar() + ""); + h.mTvGoodsStandard.setText(bean.getGoodsStandarName()); + h.mTvCount.setText("数量:" + bean.getCarAmount()); + + } + + public OnItemC mOnItemC; + + public void addItemC(OnItemC c) { + this.mOnItemC = c; + } + + public interface OnItemC { + void onItemC(ShopGoodsDetailBean bean, int i); + } + + protected OnCheckListener mOnCheckListener; + + public void addCheckListener(OnCheckListener clickLis) { + this.mOnCheckListener = clickLis; + } + + public interface OnCheckListener { + void onClick(ShopGoodsDetailBean b, int i, boolean check); + } + + + protected OnClickLis mOnClickLis; + + public void addClick(OnClickLis clickLis) { + this.mOnClickLis = clickLis; + } + + public interface OnClickLis { + void onClick(ShopGoodsDetailBean b, int i); + } + +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShippingAddressAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShippingAddressAdapter.java new file mode 100644 index 0000000..09dc9f4 --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShippingAddressAdapter.java @@ -0,0 +1,67 @@ +package com.tenlionsoft.moduleshop.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; +import com.tenlionsoft.moduleshop.R; +import com.tenlionsoft.moduleshop.beans.ShippingAddressBean; +import com.tenlionsoft.moduleshop.holder.ShippingAddressHolder; + +import java.util.List; + +/** + * 收货地址 + */ +public class ShippingAddressAdapter extends BaseRecyclerAdapter { + + public ShippingAddressAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public ShippingAddressHolder createHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(mContext).inflate(R.layout.item_shipping_address, parent, false); + return new ShippingAddressHolder(view); + } + + @Override + public void bindHolder(ShippingAddressHolder h, int i) { + ShippingAddressBean b = mData.get(i); + h.mTvAddressArea.setText(b.getAreaName()); + h.mTvAddressContent.setText(b.getShopAddressContent()); + h.mTvName.setText(b.getShopAddressName() + " " + b.getShopAddressPhone()); + if ("1".equals(b.getShopAddressDefault())) { + h.mIvDefault.setVisibility(View.VISIBLE); + } else { + h.mIvDefault.setVisibility(View.GONE); + } + h.mIvEdit.setOnClickListener(v -> mEditListener.onEdit(b, i)); + h.mLlContent.setOnClickListener(v -> mItemSelectListener.onSelect(b, i)); + } + + private OnEditListener mEditListener; + + public void addOnEditListener(OnEditListener listener) { + this.mEditListener = listener; + } + + public interface OnEditListener { + void onEdit(ShippingAddressBean b, int i); + } + + + private OnItemSelectListener mItemSelectListener; + + public void addOnItemSelectListener(OnItemSelectListener listener) { + this.mItemSelectListener = listener; + } + + public interface OnItemSelectListener { + void onSelect(ShippingAddressBean b, int i); + } + + +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopGoodsAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopGoodsAdapter.java index 49df36f..4c09483 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopGoodsAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopGoodsAdapter.java @@ -10,7 +10,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.GoodsListBean; import com.tenlionsoft.moduleshop.holder.GoodsHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortAdapter.java index 3ff2ca6..c1a87a4 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortAdapter.java @@ -9,7 +9,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.ShopSortListBean; import com.tenlionsoft.moduleshop.holder.ShopSortHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortExAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortExAdapter.java index 5370c4f..9f7e72c 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortExAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortExAdapter.java @@ -8,7 +8,7 @@ import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.TextView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.ShopSortListBean; import java.util.List; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortOneAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortOneAdapter.java index b5a4df1..8f5e7b3 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortOneAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortOneAdapter.java @@ -7,7 +7,7 @@ import android.view.View; import android.view.ViewGroup; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.ShopSortListBean; import com.tenlionsoft.moduleshop.holder.ShopSortOneHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortSecondAdapter.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortSecondAdapter.java index 173f9fe..c207281 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortSecondAdapter.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/adapter/ShopSortSecondAdapter.java @@ -7,12 +7,8 @@ import android.view.ViewGroup; import androidx.recyclerview.widget.GridLayoutManager; -import com.bumptech.glide.Glide; -import com.bumptech.glide.RequestBuilder; -import com.bumptech.glide.request.RequestOptions; -import com.sucstepsoft.cm_utils.core.retrofit_net.BaseUrlApi; import com.sucstepsoft.cm_utils.core.widget.base.BaseRecyclerAdapter; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; import com.tenlionsoft.moduleshop.beans.ShopSortListBean; import com.tenlionsoft.moduleshop.holder.ShopSortSecondHolder; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/OrderListBean.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/OrderListBean.java new file mode 100644 index 0000000..555e1bf --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/OrderListBean.java @@ -0,0 +1,790 @@ +package com.tenlionsoft.moduleshop.beans; + +import java.util.List; + +public class OrderListBean { + + private int page; + private List rows; + private int total; + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsBean { + private int amountFinalMoney; + private int amountFinalTotalMoney; + private int amountMoney; + private String cancelData; + private String cancelDataTitle; + private String cancelRemark; + private String cancelTime; + private String cancelType; + private String chargeOrderStatus; + private String chargeOrderTime; + private String creator; + private String evaluateExpress; + private String evaluateService; + private String evaluateTime; + private String expressAddress; + private String expressAreaCode; + private String expressCompany; + private String expressCompanyName; + private int expressFinalMoney; + private int expressMoney; + private String expressName; + private String expressNo; + private String expressPhone; + private String gmtCreate; + private String gmtModified; + private int isCancel; + private int isDelete; + private String modifier; + private List orderDetailList; + private String orderFinalTime; + private String orderId; + private String orderNo; + private String orderNumber; + private String orderQrcode; + private int orderStatus; + private String orderStatusMsg; + private String orderTimeStatus; + private String orderType; + private String shopId; + private String shopLogo; + private String shopName; + private String shopWords; + private String words; + + public int getAmountFinalMoney() { + return amountFinalMoney; + } + + public void setAmountFinalMoney(int amountFinalMoney) { + this.amountFinalMoney = amountFinalMoney; + } + + public int getAmountFinalTotalMoney() { + return amountFinalTotalMoney; + } + + public void setAmountFinalTotalMoney(int amountFinalTotalMoney) { + this.amountFinalTotalMoney = amountFinalTotalMoney; + } + + public int getAmountMoney() { + return amountMoney; + } + + public void setAmountMoney(int amountMoney) { + this.amountMoney = amountMoney; + } + + public String getCancelData() { + return cancelData; + } + + public void setCancelData(String cancelData) { + this.cancelData = cancelData; + } + + public String getCancelDataTitle() { + return cancelDataTitle; + } + + public void setCancelDataTitle(String cancelDataTitle) { + this.cancelDataTitle = cancelDataTitle; + } + + public String getCancelRemark() { + return cancelRemark; + } + + public void setCancelRemark(String cancelRemark) { + this.cancelRemark = cancelRemark; + } + + public String getCancelTime() { + return cancelTime; + } + + public void setCancelTime(String cancelTime) { + this.cancelTime = cancelTime; + } + + public String getCancelType() { + return cancelType; + } + + public void setCancelType(String cancelType) { + this.cancelType = cancelType; + } + + public String getChargeOrderStatus() { + return chargeOrderStatus; + } + + public void setChargeOrderStatus(String chargeOrderStatus) { + this.chargeOrderStatus = chargeOrderStatus; + } + + public String getChargeOrderTime() { + return chargeOrderTime; + } + + public void setChargeOrderTime(String chargeOrderTime) { + this.chargeOrderTime = chargeOrderTime; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getEvaluateExpress() { + return evaluateExpress; + } + + public void setEvaluateExpress(String evaluateExpress) { + this.evaluateExpress = evaluateExpress; + } + + public String getEvaluateService() { + return evaluateService; + } + + public void setEvaluateService(String evaluateService) { + this.evaluateService = evaluateService; + } + + public String getEvaluateTime() { + return evaluateTime; + } + + public void setEvaluateTime(String evaluateTime) { + this.evaluateTime = evaluateTime; + } + + public String getExpressAddress() { + return expressAddress; + } + + public void setExpressAddress(String expressAddress) { + this.expressAddress = expressAddress; + } + + public String getExpressAreaCode() { + return expressAreaCode; + } + + public void setExpressAreaCode(String expressAreaCode) { + this.expressAreaCode = expressAreaCode; + } + + public String getExpressCompany() { + return expressCompany; + } + + public void setExpressCompany(String expressCompany) { + this.expressCompany = expressCompany; + } + + public String getExpressCompanyName() { + return expressCompanyName; + } + + public void setExpressCompanyName(String expressCompanyName) { + this.expressCompanyName = expressCompanyName; + } + + public int getExpressFinalMoney() { + return expressFinalMoney; + } + + public void setExpressFinalMoney(int expressFinalMoney) { + this.expressFinalMoney = expressFinalMoney; + } + + public int getExpressMoney() { + return expressMoney; + } + + public void setExpressMoney(int expressMoney) { + this.expressMoney = expressMoney; + } + + public String getExpressName() { + return expressName; + } + + public void setExpressName(String expressName) { + this.expressName = expressName; + } + + public String getExpressNo() { + return expressNo; + } + + public void setExpressNo(String expressNo) { + this.expressNo = expressNo; + } + + public String getExpressPhone() { + return expressPhone; + } + + public void setExpressPhone(String expressPhone) { + this.expressPhone = expressPhone; + } + + public String getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getGmtModified() { + return gmtModified; + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public int getIsCancel() { + return isCancel; + } + + public void setIsCancel(int isCancel) { + this.isCancel = isCancel; + } + + public int getIsDelete() { + return isDelete; + } + + public void setIsDelete(int isDelete) { + this.isDelete = isDelete; + } + + public String getOdifier() { + return modifier; + } + + public void setOdifier(String odifier) { + modifier = odifier; + } + + public List getOrderDetailList() { + return orderDetailList; + } + + public void setOrderDetailList(List orderDetailList) { + this.orderDetailList = orderDetailList; + } + + public String getOrderFinalTime() { + return orderFinalTime; + } + + public void setOrderFinalTime(String orderFinalTime) { + this.orderFinalTime = orderFinalTime; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getOrderNo() { + return orderNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber; + } + + public String getOrderQrcode() { + return orderQrcode; + } + + public void setOrderQrcode(String orderQrcode) { + this.orderQrcode = orderQrcode; + } + + public int getOrderStatus() { + return orderStatus; + } + + public void setOrderStatus(int orderStatus) { + this.orderStatus = orderStatus; + } + + public String getOrderStatusMsg() { + return orderStatusMsg; + } + + public void setOrderStatusMsg(String orderStatusMsg) { + this.orderStatusMsg = orderStatusMsg; + } + + public String getOrderTimeStatus() { + return orderTimeStatus; + } + + public void setOrderTimeStatus(String orderTimeStatus) { + this.orderTimeStatus = orderTimeStatus; + } + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public String getShopId() { + return shopId; + } + + public void setShopId(String shopId) { + this.shopId = shopId; + } + + public String getShopLogo() { + return shopLogo; + } + + public void setShopLogo(String shopLogo) { + this.shopLogo = shopLogo; + } + + public String getShopName() { + return shopName; + } + + public void setShopName(String shopName) { + this.shopName = shopName; + } + + public String getShopWords() { + return shopWords; + } + + public void setShopWords(String shopWords) { + this.shopWords = shopWords; + } + + public String getWords() { + return words; + } + + public void setWords(String words) { + this.words = words; + } + + public static class OrderDetailListBean { + private String creator; + private String gmtCreate; + private String gmtModified; + private String goodsId; + private int goodsItemCount; + private String goodsItemId; + private String goodsItemName; + private int goodsItemPrice; + private String goodsItemUnit; + private String goodsLogo; + private String goodsName; + private int isDelete; + private String isService; + private String modifier; + private String orderDetailComment; + private String orderDetailEvaluate; + private String orderDetailEvaluateTime; + private String orderDetailId; + private String orderDetailImage; + private String orderId; + private String serviceId; + private List serviceList; + private String serviceType; + private int totalFinalPrice; + private int totalPrice; + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getGmtModified() { + return gmtModified; + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public String getGoodsId() { + return goodsId; + } + + public void setGoodsId(String goodsId) { + this.goodsId = goodsId; + } + + public int getGoodsItemCount() { + return goodsItemCount; + } + + public void setGoodsItemCount(int goodsItemCount) { + this.goodsItemCount = goodsItemCount; + } + + public String getGoodsItemId() { + return goodsItemId; + } + + public void setGoodsItemId(String goodsItemId) { + this.goodsItemId = goodsItemId; + } + + public String getGoodsItemName() { + return goodsItemName; + } + + public void setGoodsItemName(String goodsItemName) { + this.goodsItemName = goodsItemName; + } + + public int getGoodsItemPrice() { + return goodsItemPrice; + } + + public void setGoodsItemPrice(int goodsItemPrice) { + this.goodsItemPrice = goodsItemPrice; + } + + public String getGoodsItemUnit() { + return goodsItemUnit; + } + + public void setGoodsItemUnit(String goodsItemUnit) { + this.goodsItemUnit = goodsItemUnit; + } + + public String getGoodsLogo() { + return goodsLogo; + } + + public void setGoodsLogo(String goodsLogo) { + this.goodsLogo = goodsLogo; + } + + public String getGoodsName() { + return goodsName; + } + + public void setGoodsName(String goodsName) { + this.goodsName = goodsName; + } + + public int getIsDelete() { + return isDelete; + } + + public void setIsDelete(int isDelete) { + this.isDelete = isDelete; + } + + public String getIsService() { + return isService; + } + + public void setIsService(String isService) { + this.isService = isService; + } + + public String getOdifier() { + return modifier; + } + + public void setOdifier(String odifier) { + modifier = odifier; + } + + public String getOrderDetailComment() { + return orderDetailComment; + } + + public void setOrderDetailComment(String orderDetailComment) { + this.orderDetailComment = orderDetailComment; + } + + public String getOrderDetailEvaluate() { + return orderDetailEvaluate; + } + + public void setOrderDetailEvaluate(String orderDetailEvaluate) { + this.orderDetailEvaluate = orderDetailEvaluate; + } + + public String getOrderDetailEvaluateTime() { + return orderDetailEvaluateTime; + } + + public void setOrderDetailEvaluateTime(String orderDetailEvaluateTime) { + this.orderDetailEvaluateTime = orderDetailEvaluateTime; + } + + public String getOrderDetailId() { + return orderDetailId; + } + + public void setOrderDetailId(String orderDetailId) { + this.orderDetailId = orderDetailId; + } + + public String getOrderDetailImage() { + return orderDetailImage; + } + + public void setOrderDetailImage(String orderDetailImage) { + this.orderDetailImage = orderDetailImage; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getServiceId() { + return serviceId; + } + + public void setServiceId(String serviceId) { + this.serviceId = serviceId; + } + + public List getServiceList() { + return serviceList; + } + + public void setServiceList(List serviceList) { + this.serviceList = serviceList; + } + + public String getServiceType() { + return serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public int getTotalFinalPrice() { + return totalFinalPrice; + } + + public void setTotalFinalPrice(int totalFinalPrice) { + this.totalFinalPrice = totalFinalPrice; + } + + public int getTotalPrice() { + return totalPrice; + } + + public void setTotalPrice(int totalPrice) { + this.totalPrice = totalPrice; + } + + public static class ServiceListBean { + private String checkRemark; + private String checkTime; + private String createTime; + private String orderServiceFinalTime; + private String orderServiceId; + private String orderServiceStatus; + private int price; + private String serviceType; + private String serviceTypeName; + private String statusRemark; + private String step; + private String type0Status; + private String type1Status; + private String type2Status; + private String type3Status; + + public String getCheckRemark() { + return checkRemark; + } + + public void setCheckRemark(String checkRemark) { + this.checkRemark = checkRemark; + } + + public String getCheckTime() { + return checkTime; + } + + public void setCheckTime(String checkTime) { + this.checkTime = checkTime; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getOrderServiceFinalTime() { + return orderServiceFinalTime; + } + + public void setOrderServiceFinalTime(String orderServiceFinalTime) { + this.orderServiceFinalTime = orderServiceFinalTime; + } + + public String getOrderServiceId() { + return orderServiceId; + } + + public void setOrderServiceId(String orderServiceId) { + this.orderServiceId = orderServiceId; + } + + public String getOrderServiceStatus() { + return orderServiceStatus; + } + + public void setOrderServiceStatus(String orderServiceStatus) { + this.orderServiceStatus = orderServiceStatus; + } + + public int getPrice() { + return price; + } + + public void setPrice(int price) { + this.price = price; + } + + public String getServiceType() { + return serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public String getServiceTypeName() { + return serviceTypeName; + } + + public void setServiceTypeName(String serviceTypeName) { + this.serviceTypeName = serviceTypeName; + } + + public String getStatusRemark() { + return statusRemark; + } + + public void setStatusRemark(String statusRemark) { + this.statusRemark = statusRemark; + } + + public String getStep() { + return step; + } + + public void setStep(String step) { + this.step = step; + } + + public String getType0Status() { + return type0Status; + } + + public void setType0Status(String type0Status) { + this.type0Status = type0Status; + } + + public String getType1Status() { + return type1Status; + } + + public void setType1Status(String type1Status) { + this.type1Status = type1Status; + } + + public String getType2Status() { + return type2Status; + } + + public void setType2Status(String type2Status) { + this.type2Status = type2Status; + } + + public String getType3Status() { + return type3Status; + } + + public void setType3Status(String type3Status) { + this.type3Status = type3Status; + } + } + } + } +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/SaveAddressBean.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/SaveAddressBean.java new file mode 100644 index 0000000..ed6f312 --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/SaveAddressBean.java @@ -0,0 +1,77 @@ +package com.tenlionsoft.moduleshop.beans; + +public class SaveAddressBean { + + private String areaCode; + private String areaId; + private String areaName; + private String shopAddressContent; //地址详情 + private String shopAddressDefault;//是否默认 1默认 0非默认 + private String shopAddressName;//收货人姓名 + private String shopAddressPhone;//收货人手机号码 + private String shopAddressZipcode;//邮编 + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getShopAddressContent() { + return shopAddressContent; + } + + public void setShopAddressContent(String shopAddressContent) { + this.shopAddressContent = shopAddressContent; + } + + public String getShopAddressDefault() { + return shopAddressDefault; + } + + public void setShopAddressDefault(String shopAddressDefault) { + this.shopAddressDefault = shopAddressDefault; + } + + public String getShopAddressName() { + return shopAddressName; + } + + public void setShopAddressName(String shopAddressName) { + this.shopAddressName = shopAddressName; + } + + public String getShopAddressPhone() { + return shopAddressPhone; + } + + public void setShopAddressPhone(String shopAddressPhone) { + this.shopAddressPhone = shopAddressPhone; + } + + public String getShopAddressZipcode() { + return shopAddressZipcode; + } + + public void setShopAddressZipcode(String shopAddressZipcode) { + this.shopAddressZipcode = shopAddressZipcode; + } +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/SaveOrderBean.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/SaveOrderBean.java new file mode 100644 index 0000000..31c12dd --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/SaveOrderBean.java @@ -0,0 +1,73 @@ +package com.tenlionsoft.moduleshop.beans; + +import java.util.List; + +public class SaveOrderBean { + + private List goodsItemList; + private String shopAddressId; + private String words; + + public List getGoodsItemList() { + return goodsItemList; + } + + public void setGoodsItemList(List goodsItemList) { + this.goodsItemList = goodsItemList; + } + + public String getShopAddressId() { + return shopAddressId; + } + + public void setShopAddressId(String shopAddressId) { + this.shopAddressId = shopAddressId; + } + + public String getWords() { + return words; + } + + public void setWords(String words) { + this.words = words; + } + + public static class GoodsItemListBean { + private int count; + private String goodsId; + private String goodsItemId; + private int weight; + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public String getGoodsId() { + return goodsId; + } + + public void setGoodsId(String goodsId) { + this.goodsId = goodsId; + } + + public String getGoodsItemId() { + return goodsItemId; + } + + public void setGoodsItemId(String goodsItemId) { + this.goodsItemId = goodsItemId; + } + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } + } +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/ShippingAddressBean.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/ShippingAddressBean.java new file mode 100644 index 0000000..8d2d092 --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/beans/ShippingAddressBean.java @@ -0,0 +1,133 @@ +package com.tenlionsoft.moduleshop.beans; + +import java.io.Serializable; + +public class ShippingAddressBean implements Serializable { + + private String areaCode; + private String areaId; + private String areaName; + private String creator; + private String gmtCreate; + private String gmtModified; + private int isDelete; + private String modifier; + private String shopAddressContent; + private String shopAddressDefault; + private String shopAddressId; + private String shopAddressName; + private String shopAddressPhone; + private String shopAddressZipcode; + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getGmtCreate() { + return gmtCreate; + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public String getGmtModified() { + return gmtModified; + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + + public int getIsDelete() { + return isDelete; + } + + public void setIsDelete(int isDelete) { + this.isDelete = isDelete; + } + + public String getOdifier() { + return modifier; + } + + public void setOdifier(String odifier) { + modifier = odifier; + } + + public String getShopAddressContent() { + return shopAddressContent; + } + + public void setShopAddressContent(String shopAddressContent) { + this.shopAddressContent = shopAddressContent; + } + + public String getShopAddressDefault() { + return shopAddressDefault; + } + + public void setShopAddressDefault(String shopAddressDefault) { + this.shopAddressDefault = shopAddressDefault; + } + + public String getShopAddressId() { + return shopAddressId; + } + + public void setShopAddressId(String shopAddressId) { + this.shopAddressId = shopAddressId; + } + + public String getShopAddressName() { + return shopAddressName; + } + + public void setShopAddressName(String shopAddressName) { + this.shopAddressName = shopAddressName; + } + + public String getShopAddressPhone() { + return shopAddressPhone; + } + + public void setShopAddressPhone(String shopAddressPhone) { + this.shopAddressPhone = shopAddressPhone; + } + + public String getShopAddressZipcode() { + return shopAddressZipcode; + } + + public void setShopAddressZipcode(String shopAddressZipcode) { + this.shopAddressZipcode = shopAddressZipcode; + } +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/fragments/ShopSortFragment.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/fragments/ShopSortFragment.java index 8f7d383..53631d8 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/fragments/ShopSortFragment.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/fragments/ShopSortFragment.java @@ -12,8 +12,8 @@ import com.sucstepsoft.cm_utils.constant.PathConfig; import com.sucstepsoft.cm_utils.core.retrofit_net.RetrofitManager; import com.sucstepsoft.cm_utils.core.widget.base.BaseFragment; import com.sucstepsoft.cm_utils.utils.ExceptionHandler; -import com.tengshisoft.moduleshop.R; -import com.tengshisoft.moduleshop.R2; +import com.tenlionsoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R2; import com.tenlionsoft.moduleshop.adapter.ShopSortOneAdapter; import com.tenlionsoft.moduleshop.adapter.ShopSortSecondAdapter; import com.tenlionsoft.moduleshop.beans.ShopSortListBean; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/CarGoodsHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/CarGoodsHolder.java index f910e04..e2aa634 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/CarGoodsHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/CarGoodsHolder.java @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.sucstepsoft.cm_utils.core.widget.views.AddOrDelView; import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; /** * 购物车中商品 diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsCarHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsCarHolder.java index ad8724d..5e299c9 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsCarHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsCarHolder.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; /** * 购物车列表 diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsHolder.java index 0cd3874..7acb2f9 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsHolder.java @@ -7,7 +7,7 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; public class GoodsHolder extends RecyclerView.ViewHolder { public ImageView mIvIcon; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsStandardHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsStandardHolder.java index 9571e61..00c423e 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsStandardHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/GoodsStandardHolder.java @@ -8,7 +8,7 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; public class GoodsStandardHolder extends RecyclerView.ViewHolder { public ImageView mIvIcon; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/OrderConfirmGoodsHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/OrderConfirmGoodsHolder.java new file mode 100644 index 0000000..636d175 --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/OrderConfirmGoodsHolder.java @@ -0,0 +1,39 @@ +package com.tenlionsoft.moduleshop.holder; + +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; +import com.tenlionsoft.moduleshop.R; + +/** + * 确认订单中的商品 + */ +public class OrderConfirmGoodsHolder extends RecyclerView.ViewHolder { + public ImageView mIvIcon; + public TypeFaceTextView mTvName; + public TypeFaceTextView mTvPrice; + public TypeFaceTextView mTvSales; + public TypeFaceTextView mTvEvaluate; + public TypeFaceTextView mTvFreight; + public TypeFaceTextView mTvGoodsStandard; + public LinearLayout mLlItem; + public TypeFaceTextView mTvCount; + + public OrderConfirmGoodsHolder(@NonNull View itemView) { + super(itemView); + mIvIcon = itemView.findViewById(R.id.iv_goods_icon); + mTvName = itemView.findViewById(R.id.tv_goods_name); + mTvPrice = itemView.findViewById(R.id.tv_goods_price); + mTvSales = itemView.findViewById(R.id.tv_goods_sales); + mTvEvaluate = itemView.findViewById(R.id.tv_goods_evaluate); + mTvFreight = itemView.findViewById(R.id.tv_goods_freight); + mTvGoodsStandard = itemView.findViewById(R.id.tv_goods_standard); + mLlItem = itemView.findViewById(R.id.ll_item); + mTvCount = itemView.findViewById(R.id.tv_count); + } +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShippingAddressHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShippingAddressHolder.java new file mode 100644 index 0000000..3136e1a --- /dev/null +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShippingAddressHolder.java @@ -0,0 +1,33 @@ +package com.tenlionsoft.moduleshop.holder; + +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.sucstepsoft.cm_utils.core.widget.views.TypeFaceTextView; +import com.tenlionsoft.moduleshop.R; + +/** + * 收货地址 + */ +public class ShippingAddressHolder extends RecyclerView.ViewHolder { + public ImageView mIvDefault; + public TypeFaceTextView mTvAddressArea; + public TypeFaceTextView mTvAddressContent; + public TypeFaceTextView mTvName; + public ImageView mIvEdit; + public LinearLayout mLlContent; + + public ShippingAddressHolder(@NonNull View itemView) { + super(itemView); + mIvDefault = itemView.findViewById(R.id.iv_default); + mTvAddressArea = itemView.findViewById(R.id.tv_address_area); + mTvAddressContent = itemView.findViewById(R.id.tv_address_content); + mIvEdit = itemView.findViewById(R.id.iv_edit); + mLlContent = itemView.findViewById(R.id.ll_content); + mTvName = itemView.findViewById(R.id.tv_name); + } +} diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortHolder.java index ef03ef5..6552b11 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortHolder.java @@ -7,7 +7,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; + public class ShopSortHolder extends RecyclerView.ViewHolder { public TextView mTvName; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortOneHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortOneHolder.java index 40d0fd1..1d54ba6 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortOneHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortOneHolder.java @@ -7,7 +7,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; + public class ShopSortOneHolder extends RecyclerView.ViewHolder { public TextView mTvName; diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortSecondHolder.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortSecondHolder.java index abe4623..2d33aa9 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortSecondHolder.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/holder/ShopSortSecondHolder.java @@ -8,7 +8,8 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import com.tengshisoft.moduleshop.R; +import com.tenlionsoft.moduleshop.R; + /** * 二级分类 diff --git a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/net/ShopApi.java b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/net/ShopApi.java index 4db5f76..34cb182 100644 --- a/moduleshop/src/main/java/com/tenlionsoft/moduleshop/net/ShopApi.java +++ b/moduleshop/src/main/java/com/tenlionsoft/moduleshop/net/ShopApi.java @@ -3,6 +3,7 @@ package com.tenlionsoft.moduleshop.net; import com.sucstepsoft.cm_utils.core.beans.BaseSuccessBean; import com.tenlionsoft.moduleshop.beans.GoodsListBean; import com.tenlionsoft.moduleshop.beans.GoodsStandardBean; +import com.tenlionsoft.moduleshop.beans.ShippingAddressBean; import com.tenlionsoft.moduleshop.beans.ShopGoodsDetailBean; import com.tenlionsoft.moduleshop.beans.ShopSortListBean; @@ -15,6 +16,7 @@ import retrofit2.http.GET; import retrofit2.http.Header; import retrofit2.http.Headers; import retrofit2.http.POST; +import retrofit2.http.PUT; import retrofit2.http.Path; import retrofit2.http.Query; @@ -75,4 +77,47 @@ public interface ShopApi { @Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"}) @POST("app/order/savebycart") Observable doSaveOrder(@Body RequestBody goods, @Header("token") String token); + + /** + * 新增收货地址 + */ + @Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"}) + @POST("app/shopaddress/save") + Observable doSaveAddress(@Body RequestBody goods, @Header("token") String token); + + /** + * 修改收货地址 + */ + @Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"}) + @PUT("app/shopaddress/update/{shopAddressId}") + Observable doEditAddress(@Body RequestBody goods, + @Path("shopAddressId") String addressId, + @Header("token") String token); + + /** + * 设置默认收货地址 + */ + @Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"}) + @PUT("app/shopaddress/updatedefault/{shopAddressId}") + Observable doSetDefaultAddress(@Path("shopAddressId") String id, @Header("token") String token); + + /** + * 获取默认地址 + */ + @Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"}) + @GET("app/shopaddress/getdefault") + Observable getDefaultAddress(@Header("token") String token); + + + /** + * 收货地址列表 + */ + @Headers({"base_url_name:shop", "Content-Type:application/json", "Accept:application/json"}) + @GET("app/shopaddress/list") + Observable> getShippingAddressList(@Header("token") String token); + /** + * 我的订单 + * app/order/listpage + */ + } diff --git a/moduleshop/src/main/res/layout/activity_order_confirm.xml b/moduleshop/src/main/res/layout/activity_order_confirm.xml new file mode 100644 index 0000000..4ae9fff --- /dev/null +++ b/moduleshop/src/main/res/layout/activity_order_confirm.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/moduleshop/src/main/res/layout/activity_shipping_address.xml b/moduleshop/src/main/res/layout/activity_shipping_address.xml new file mode 100644 index 0000000..513c71c --- /dev/null +++ b/moduleshop/src/main/res/layout/activity_shipping_address.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/moduleshop/src/main/res/layout/activity_shop_add_address.xml b/moduleshop/src/main/res/layout/activity_shop_add_address.xml new file mode 100644 index 0000000..9394507 --- /dev/null +++ b/moduleshop/src/main/res/layout/activity_shop_add_address.xml @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/moduleshop/src/main/res/layout/item_car_goods.xml b/moduleshop/src/main/res/layout/item_car_goods.xml index f5f3960..b7ef42b 100644 --- a/moduleshop/src/main/res/layout/item_car_goods.xml +++ b/moduleshop/src/main/res/layout/item_car_goods.xml @@ -11,7 +11,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" - android:button="@drawable/sel_checkbox_red" + android:button="@drawable/sel_radio_checkbox" android:enabled="false" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/moduleshop/src/main/res/layout/item_second_shop_sort.xml b/moduleshop/src/main/res/layout/item_second_shop_sort.xml index 9bbc4c6..e66213f 100644 --- a/moduleshop/src/main/res/layout/item_second_shop_sort.xml +++ b/moduleshop/src/main/res/layout/item_second_shop_sort.xml @@ -7,32 +7,6 @@ android:background="@color/white" android:orientation="vertical"> - - - - - - - + + + + + + + diff --git a/moduleshop/src/main/res/layout/item_shipping_address.xml b/moduleshop/src/main/res/layout/item_shipping_address.xml new file mode 100644 index 0000000..6ecdf73 --- /dev/null +++ b/moduleshop/src/main/res/layout/item_shipping_address.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + \ No newline at end of file