diff --git a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java index 4099b4e..cd76db7 100644 --- a/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java +++ b/app/src/main/java/com/dayu/bigfish/ui/MainActivity.java @@ -128,6 +128,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin startLocationService(); EventBus.getDefault().register(this); setUmengDeviceToken(); +// showRedPackDialog(); } //设置友盟devicetoken diff --git a/baseSDK/src/main/java/com/dayu/base/api/APIService.java b/baseSDK/src/main/java/com/dayu/base/api/APIService.java index d6b713c..972b451 100755 --- a/baseSDK/src/main/java/com/dayu/base/api/APIService.java +++ b/baseSDK/src/main/java/com/dayu/base/api/APIService.java @@ -3,6 +3,7 @@ package com.dayu.base.api; import com.dayu.base.api.protocol.AddressInfoBean; import com.dayu.base.api.protocol.BaseResponse; +import com.dayu.base.api.protocol.BankInfoBean; import com.dayu.base.api.protocol.TreeAddressBean; import com.dayu.common.Constants; @@ -98,4 +99,13 @@ public interface APIService { */ @GET(Constants.API_7100 + "/engineerAddress/default/accountId/{accountId}") Observable<BaseResponse<AddressInfoBean>> getAddressInfo(@Path("accountId") int accountId); + + /** + * 获取银行信息. + * sourceType 1工程师账号 2小程序用户ID + * + * @return + */ + @GET(Constants.API_7800 + "/payAccountBank/accountId/{accountId}/sourceType/1") + Observable<BaseResponse<BankInfoBean>> getUserBankInfo(@Path("accountId") int accountId); } diff --git a/baseSDK/src/main/java/com/dayu/base/api/protocol/BankInfoBean.java b/baseSDK/src/main/java/com/dayu/base/api/protocol/BankInfoBean.java new file mode 100644 index 0000000..d59aae5 --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/base/api/protocol/BankInfoBean.java @@ -0,0 +1,98 @@ +package com.dayu.base.api.protocol; + +public class BankInfoBean { + + /** + * id : 0 + * sourceAccountId : 1267 + * sourceType : 1 + * bankName : aksksks + * bankAccount : 7767664944 + * realName : jdjdnn + * identity : null + * createTime : 2020-02-25 14:42:18 + * mobile : null + */ + + private int id; + private int sourceAccountId; + private int sourceType; + private String bankName; + private String bankAccount; + private String realName; + private Object identity; + private String createTime; + private Object mobile; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getSourceAccountId() { + return sourceAccountId; + } + + public void setSourceAccountId(int sourceAccountId) { + this.sourceAccountId = sourceAccountId; + } + + public int getSourceType() { + return sourceType; + } + + public void setSourceType(int sourceType) { + this.sourceType = sourceType; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getRealName() { + return realName; + } + + public void setRealName(String realName) { + this.realName = realName; + } + + public Object getIdentity() { + return identity; + } + + public void setIdentity(Object identity) { + this.identity = identity; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public Object getMobile() { + return mobile; + } + + public void setMobile(Object mobile) { + this.mobile = mobile; + } +} diff --git a/baseSDK/src/main/java/com/dayu/base/ui/activity/BaseActivity.java b/baseSDK/src/main/java/com/dayu/base/ui/activity/BaseActivity.java index bb0b6cc..4f64d93 100755 --- a/baseSDK/src/main/java/com/dayu/base/ui/activity/BaseActivity.java +++ b/baseSDK/src/main/java/com/dayu/base/ui/activity/BaseActivity.java @@ -5,8 +5,12 @@ import android.content.Intent; import android.databinding.ViewDataBinding; import android.os.Bundle; import android.support.v4.app.NotificationCompat; +import android.text.TextUtils; import com.alibaba.android.arouter.launcher.ARouter; +import com.dayu.base.api.APIService; +import com.dayu.base.api.Api; +import com.dayu.base.api.protocol.BankInfoBean; import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.baselibrary.R; import com.dayu.common.BaseConstant; @@ -19,6 +23,7 @@ import com.dayu.utils.TUtil; import com.dayu.utils.ToastUtils; import com.dayu.utils.UserManager; import com.dayu.widgets.CustomDialog; +import com.dayu.widgets.RedPacketsDialog; import com.hyphenate.chat.EMClient; import java.lang.reflect.ParameterizedType; @@ -38,7 +43,6 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi protected static NotificationCompat.Builder builder; - @Override protected void initPresenter() { super.initPresenter(); @@ -142,6 +146,36 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi return getIntent().getBundleExtra(Constants.BUNDLE); } + public void showRedPackDialog() { + RedPacketsDialog redPacketsDialog = RedPacketsDialog.getInstance(); + redPacketsDialog.show(this, new RedPacketsDialog.onItemClickListener() { + @Override + public void onOpenClick() { + openRedPacket(redPacketsDialog); + } + + @Override + public void toBankEdit() { + + } + }); + + } + + @SuppressWarnings("unchecked") + protected void openRedPacket(RedPacketsDialog redPacketsDialog) { + showDialog(); + Api.getService(APIService.class).getUserBankInfo(mUserId).compose(Api.applySchedulers()) + .subscribe(mPresenter.baseObserver(data -> { + BankInfoBean bankInfoBean = (BankInfoBean) data; + if (data == null || TextUtils.isEmpty(((BankInfoBean) data).getBankAccount())) { + redPacketsDialog.openSuccess(false, 6.66); + } else { + redPacketsDialog.openSuccess(true, 6.66); + } + }, responeThrowable -> redPacketsDialog.openSuccess(false, 6.66))); + } + /** * token超时提示重新登录. */ @@ -167,7 +201,7 @@ public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBi isDialogShow = true; } - protected void initUser(){ + protected void initUser() { UserInfo info = UserManager.getInstance().getUser(); mUserId = Integer.parseInt(info.getAccountId()); mUserInfo = info; diff --git a/baseSDK/src/main/java/com/dayu/common/Constants.java b/baseSDK/src/main/java/com/dayu/common/Constants.java index 4574965..7df1a4c 100755 --- a/baseSDK/src/main/java/com/dayu/common/Constants.java +++ b/baseSDK/src/main/java/com/dayu/common/Constants.java @@ -29,11 +29,14 @@ public class Constants { public static final String API_8600 = "/api-mall"; + public final static String PATH_EDIT_BANK = "/userCenter/edit_bank"; + public final static String PATH_USER_REWARD= "/userCenter/user_reward"; + public static final String PROGRAM_PATH = "pages/mallDetail/main?goodsId=gid&userId=uid&type=1"; //小程序路径 public static final String INVITE_NEW_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareMaster?code="; //邀请新人分享链接 public static final String INVITE_NEW_SHARE_URL_BUSINESS = "http://app.dl.kf.ai/ext/#/merchants?code="; //邀请商家分享链接 - public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live) -// public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live) + // public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live) + public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live) /** diff --git a/baseSDK/src/main/java/com/dayu/utils/BitmapUtils.java b/baseSDK/src/main/java/com/dayu/utils/BitmapUtils.java new file mode 100644 index 0000000..d21c82f --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/utils/BitmapUtils.java @@ -0,0 +1,74 @@ +package com.dayu.utils; + +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.os.Environment; +import android.view.View; + +import java.io.File; +import java.io.FileOutputStream; + +public class BitmapUtils { + + /** + * 布局转bitmap + * @param view + * @return + */ + public static Bitmap getBitmap(View view) { + //获取view的长宽 + int width = view.getMeasuredWidth(); + int height = view.getMeasuredHeight(); + //若传入的view长或宽为小于等于0,则返回,不生成图片 + if (width <=0 || height<=0) { + return null; + } + //生成一个ARGB8888的bitmap,宽度和高度为传入view的宽高 + Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); + if (bm == null) { + return null; + } + //根据bitmap生成一个画布 + Canvas canvas = new Canvas(bm); + //注意:这里是解决图片透明度问题,给底色上白色,若存储时保存的为png格式的图,则无需此步骤 + canvas.drawColor(Color.WHITE); + //手动将这个视图渲染到指定的画布上 + view.draw(canvas); + return bm; + } + + + /** + * 保存bitmap到本地 + * @param bmp + */ + public static File saveBitmap2Local(Bitmap bmp,String name) { + if (bmp == null) + return null; + // 判断是否可以对SDcard进行操作 + if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { // 获取SDCard指定目录下 + String dir = Environment.getExternalStorageDirectory() + "/dayu/imgs"; + + File dirFile = new File(dir); + if (!dirFile.exists()) { + dirFile.mkdirs(); + } + File file = new File(dir, name); + if (file.exists()) + return file; +// file.delete(); + try { + FileOutputStream out = new FileOutputStream(file); + bmp.compress(Bitmap.CompressFormat.PNG, 100, out); + out.flush(); + out.close(); + return file; + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/baseSDK/src/main/java/com/dayu/utils/CommonUtils.java b/baseSDK/src/main/java/com/dayu/utils/CommonUtils.java index c3014d9..98b597c 100644 --- a/baseSDK/src/main/java/com/dayu/utils/CommonUtils.java +++ b/baseSDK/src/main/java/com/dayu/utils/CommonUtils.java @@ -5,6 +5,7 @@ import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; import android.net.Uri; import android.text.TextUtils; @@ -21,9 +22,9 @@ import com.umeng.socialize.UMShareListener; import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.media.UMImage; import com.umeng.socialize.media.UMMin; -import com.umeng.socialize.media.UMVideo; import com.umeng.socialize.media.UMWeb; +import java.io.File; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -296,18 +297,16 @@ public class CommonUtils { } /** - * 微信(朋友圈)分享链接(包含标题内容) + * 分享图片 */ - public static void shareWxVideo(Activity activity, String videoUrl, String imgUrl, String title, - String description, UMShareListener callBack) { - UMVideo video = new UMVideo(videoUrl); - video.setTitle(title);//视频的标题 - video.setDescription(description);//视频的描述 - new ShareAction(activity).withMedia(video) - .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE) - .setCallback(callBack).open(); -// .setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE) -// .setCallback(callBack).share(); + public static void shareImg(Activity activity, File bitmap, SHARE_MEDIA platform, UMShareListener callBack) { + UMImage image = new UMImage(activity, bitmap);//bitmap文件 + image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图 + image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享 + image.compressFormat = Bitmap.CompressFormat.PNG;//用户分享透明背景的图片可以设置这种方式,但是qq好友,微信朋友圈,不支持透明背景图片,会变成黑色 + new ShareAction(activity).withMedia(image) + .setPlatform(platform) + .setCallback(callBack).share(); } diff --git a/baseSDK/src/main/java/com/dayu/utils/UserManager.java b/baseSDK/src/main/java/com/dayu/utils/UserManager.java index b90fcc8..aad3dde 100755 --- a/baseSDK/src/main/java/com/dayu/utils/UserManager.java +++ b/baseSDK/src/main/java/com/dayu/utils/UserManager.java @@ -56,6 +56,8 @@ public class UserManager { SPUtils.remove("USER_INFO"); SPUtils.remove("token"); SPUtils.remove("USER_IDENTITY"); + SPUtils.remove("bank_addr_info"); + } /** diff --git a/baseSDK/src/main/java/com/dayu/widgets/RedPacketsDialog.java b/baseSDK/src/main/java/com/dayu/widgets/RedPacketsDialog.java new file mode 100644 index 0000000..dbee649 --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/widgets/RedPacketsDialog.java @@ -0,0 +1,100 @@ +package com.dayu.widgets; + +import android.app.Activity; +import android.app.Dialog; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.dayu.baselibrary.R; +import com.dayu.common.Constants; + + +public class RedPacketsDialog { + TextView tvName; + TextView tvMoney; + ImageView ivIcon; + ImageView ivOpen; + ImageView ivClose; + Dialog mDialog; + Button btnOperate; + boolean hasBankIfno; + + + public static RedPacketsDialog instance; + + + public static RedPacketsDialog getInstance() { + if (instance == null) { + instance = new RedPacketsDialog(); + } + return instance; + } + + + public void show(final Activity activity, onItemClickListener listener) { + View mView = View.inflate(activity, R.layout.dialog_red_packets, null); + tvName = mView.findViewById(R.id.tv_name); + tvMoney = mView.findViewById(R.id.tv_money); + ivIcon = mView.findViewById(R.id.iv_icon); + ivOpen = mView.findViewById(R.id.iv_open); + ivClose = mView.findViewById(R.id.iv_close); + btnOperate = mView.findViewById(R.id.btn_operate); + + tvMoney.setVisibility(View.GONE); + ivOpen.setVisibility(View.VISIBLE); + btnOperate.setVisibility(View.GONE); + + mDialog = new Dialog(activity, R.style.CustomDialog); + mDialog.setContentView(mView); + Window window = mDialog.getWindow(); + WindowManager.LayoutParams wl = window.getAttributes(); + wl.width = ViewGroup.LayoutParams.MATCH_PARENT; + wl.height = ViewGroup.LayoutParams.WRAP_CONTENT; + wl.gravity = Gravity.CENTER; + mDialog.onWindowAttributesChanged(wl); + mDialog.show(); + mDialog.setCanceledOnTouchOutside(false); + mDialog.setCancelable(true); + + ivClose.setOnClickListener(view -> mDialog.dismiss()); + ivOpen.setOnClickListener(view -> { + if (listener != null) + listener.onOpenClick(); + }); + + btnOperate.setOnClickListener(view -> { + if (hasBankIfno){ + ARouter.getInstance().build(Constants.PATH_USER_REWARD).withInt("type",4).navigation(); + }else { + ARouter.getInstance().build(Constants.PATH_EDIT_BANK).navigation(); + } + mDialog.dismiss(); + }); + + } + + + public void openSuccess(boolean hasBankIfno, double money) { + if (tvMoney != null) { + this.hasBankIfno = hasBankIfno; + tvMoney.setText("中奖金额" + money + "元"); + tvMoney.setVisibility(View.VISIBLE); + ivOpen.setVisibility(View.GONE); + btnOperate.setVisibility(View.VISIBLE); + btnOperate.setText(hasBankIfno?"去查看":"去提现"); + } + } + + public interface onItemClickListener { + void onOpenClick(); + + void toBankEdit(); + } +} diff --git a/baseSDK/src/main/java/com/dayu/widgets/WechatShareDialog.java b/baseSDK/src/main/java/com/dayu/widgets/WechatShareDialog.java new file mode 100644 index 0000000..d15be27 --- /dev/null +++ b/baseSDK/src/main/java/com/dayu/widgets/WechatShareDialog.java @@ -0,0 +1,68 @@ +package com.dayu.widgets; + +import android.app.Activity; +import android.app.Dialog; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.dayu.baselibrary.R; + + +public class WechatShareDialog { + + public static WechatShareDialog instance; + + public static WechatShareDialog getInstance(){ + if (instance == null){ + instance = new WechatShareDialog(); + } + return instance; + } + + + public void showBottomDialog(final Activity activity,onItemClickListener listener) { + + View mView = View.inflate(activity, R.layout.dialog_wechat_share , null); + TextView tvCancle = mView.findViewById(R.id.tv_cancle); + LinearLayout llWx = mView.findViewById(R.id.ll_wechat); + LinearLayout llCircle = mView.findViewById(R.id.ll_circle); + + + Dialog mDialog = new Dialog(activity, R.style.CustomDialog); + mDialog.setContentView(mView); + Window window = mDialog.getWindow(); + WindowManager.LayoutParams wl = window.getAttributes(); + wl.width = ViewGroup.LayoutParams.MATCH_PARENT; + wl.height = ViewGroup.LayoutParams.WRAP_CONTENT; + wl.gravity = Gravity.BOTTOM; + mDialog.onWindowAttributesChanged(wl); + mDialog.show(); + mDialog.setCanceledOnTouchOutside(true); + mDialog.setCancelable(true); + + tvCancle.setOnClickListener(view -> mDialog.dismiss()); + llWx.setOnClickListener(view -> { + if (listener != null){ + listener.onClick(0); + } + mDialog.dismiss(); + }); + llCircle.setOnClickListener(view -> { + if (listener != null){ + listener.onClick(1); + } + mDialog.dismiss(); + }); + + } + + + public interface onItemClickListener { + void onClick(int pos); + } +} diff --git a/baseSDK/src/main/res/drawable-hdpi/ic_red_packet_close.png b/baseSDK/src/main/res/drawable-hdpi/ic_red_packet_close.png new file mode 100644 index 0000000..6b5f622 Binary files /dev/null and b/baseSDK/src/main/res/drawable-hdpi/ic_red_packet_close.png differ diff --git a/baseSDK/src/main/res/drawable-xxhdpi/ic_red_packet_open.png b/baseSDK/src/main/res/drawable-xxhdpi/ic_red_packet_open.png new file mode 100644 index 0000000..b6f4f5d Binary files /dev/null and b/baseSDK/src/main/res/drawable-xxhdpi/ic_red_packet_open.png differ diff --git a/baseSDK/src/main/res/drawable-xxhdpi/ic_red_packets_bg.png b/baseSDK/src/main/res/drawable-xxhdpi/ic_red_packets_bg.png new file mode 100644 index 0000000..7e84776 Binary files /dev/null and b/baseSDK/src/main/res/drawable-xxhdpi/ic_red_packets_bg.png differ diff --git a/baseSDK/src/main/res/layout/dialog_red_packets.xml b/baseSDK/src/main/res/layout/dialog_red_packets.xml new file mode 100644 index 0000000..8697317 --- /dev/null +++ b/baseSDK/src/main/res/layout/dialog_red_packets.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:gravity="center_horizontal" + > + <LinearLayout + android:id="@+id/ll_bg" + android:layout_width="320dp" + android:layout_height="430dp" + android:orientation="vertical" + android:layout_centerHorizontal="true" + android:gravity="center_horizontal" + android:background="@drawable/ic_red_packets_bg" + > + <ImageView + android:id="@+id/iv_icon" + android:layout_width="60dp" + android:layout_height="60dp" + android:layout_centerHorizontal="true" + android:layout_marginTop="10dp" + android:src="@drawable/icon_app_logo" + /> + <TextView + android:id="@+id/tv_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="16sp" + android:textColor="#d8b983" + android:text="大鱼官方" + android:layout_marginTop="10dp" + /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="17sp" + android:textColor="#d8b983" + android:text="给您送了一个红包" + android:layout_marginTop="10dp" + /> + <TextView + android:visibility="gone" + android:id="@+id/tv_money" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textSize="21sp" + android:textColor="#d8b983" + android:text="中奖金额100.00元" + android:layout_marginTop="10dp" + /> + <View + android:layout_width="1dp" + android:layout_height="0dp" + android:layout_weight="1" + /> + <ImageView + android:id="@+id/iv_open" + android:layout_width="100dp" + android:layout_height="100dp" + android:src="@drawable/ic_red_packet_open" + android:layout_marginBottom="105dp" + /> + + </LinearLayout> + + <ImageView + android:id="@+id/iv_close" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/ic_red_packet_close" + android:layout_alignLeft="@+id/ll_bg" + android:layout_alignTop="@+id/ll_bg" + android:layout_margin="10dp" + /> + <Button + android:visibility="gone" + android:id="@+id/btn_operate" + style="@style/btn_common_blue" + android:width="120dp" + android:text="去提现" + android:height="40dp" + android:layout_alignBottom="@+id/ll_bg" + android:layout_centerHorizontal="true" + android:layout_marginBottom="130dp" + + /> + +</RelativeLayout> \ No newline at end of file diff --git a/baseSDK/src/main/res/layout/dialog_wechat_share.xml b/baseSDK/src/main/res/layout/dialog_wechat_share.xml new file mode 100644 index 0000000..73dc956 --- /dev/null +++ b/baseSDK/src/main/res/layout/dialog_wechat_share.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/color_fa" + android:orientation="horizontal" + android:paddingTop="20dp" + android:paddingBottom="20dp"> + + <View + android:layout_width="0dp" + android:layout_height="1dp" + android:layout_weight="1" + /> + <LinearLayout + android:id="@+id/ll_wechat" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:orientation="vertical"> + + <ImageView + android:layout_width="55dp" + android:layout_height="55dp" + android:src="@drawable/umeng_socialize_wechat" /> + + <TextView + style="@style/common_text_style" + android:text="微信" + /> + </LinearLayout> + + <View + android:layout_width="0dp" + android:layout_height="1dp" + android:layout_weight="2" + /> + <LinearLayout + android:id="@+id/ll_circle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:orientation="vertical"> + + <ImageView + android:layout_width="55dp" + android:layout_height="55dp" + android:src="@drawable/umeng_socialize_wxcircle" /> + + <TextView + style="@style/common_text_style" + android:text="朋友圈" + /> + </LinearLayout> + <View + android:layout_width="0dp" + android:layout_height="1dp" + android:layout_weight="1" + /> + </LinearLayout> + + <TextView + android:id="@+id/tv_cancle" + android:layout_width="match_parent" + android:layout_height="50dp" + android:background="@color/white" + android:gravity="center" + android:text="取消分享" + android:textColor="@color/common_text_color" + android:textSize="15sp" /> +</LinearLayout> \ No newline at end of file diff --git a/baseSDK/src/main/res/values/strings.xml b/baseSDK/src/main/res/values/strings.xml index 2c47b49..a377884 100644 --- a/baseSDK/src/main/res/values/strings.xml +++ b/baseSDK/src/main/res/values/strings.xml @@ -934,6 +934,7 @@ C) 在甲方使用大鱼平台服务过程中产生的业务数据,客户数� <string name="user_bank_account">银行账号:</string> <string name="user_bank_account_hint">请输入银行账号</string> <string name="user_bank_holer">开户人姓名:</string> + <string name="fill_bank_notice">完善银行卡信息后,您的所有收入和奖励将会在下个月1号由平台提现到此卡上</string> <string name="user_bank_holer_hint">请输入开户人姓名</string> <string name="user_addr_info">快递地址信息</string> <string name="user_receiver_addr">收件地址:</string> diff --git a/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PrepareLiveActivity.java b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PrepareLiveActivity.java index 2245f31..18d2a7f 100644 --- a/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PrepareLiveActivity.java +++ b/learnCenter/src/main/java/com/dayu/learncenter/ui/activity/PrepareLiveActivity.java @@ -34,6 +34,7 @@ import okhttp3.RequestBody; public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityPrepareLiveBinding> { String title; + String coverUrl; @Override public void setPresenter() { @@ -54,11 +55,11 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP }); mBind.btnConfirm.setOnClickListener(v->{ title = mBind.edtTitle.getText().toString().trim(); - if (TextUtils.isEmpty(TCUserMgr.getInstance().getCoverPic())){ + if (TextUtils.isEmpty(coverUrl)){ showToast("请上传封面"); }else if (TextUtils.isEmpty(title)){ showToast("请输入标题"); - }else { + }else { startPublish(); } }); @@ -70,9 +71,9 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP * 初始化封面图 */ private void initCover() { - String strCover = TCUserMgr.getInstance().getCoverPic(); - if (!TextUtils.isEmpty(strCover)) { - GlideImageLoader.load(this,mBind.ivCover,strCover,R.drawable.publish_background); +// String strCover = TCUserMgr.getInstance().getCoverPic(); + if (!TextUtils.isEmpty(coverUrl)) { + GlideImageLoader.load(this,mBind.ivCover,coverUrl,R.drawable.publish_background); // mBind.tvTips.setVisibility(View.GONE); } else { mBind.ivCover.setImageResource(com.dayu.livemodule.R.drawable.publish_background); @@ -104,6 +105,7 @@ public class PrepareLiveActivity extends BaseActivity<SImplePresenter, ActivityP showDialog(); BaseApiFactory.uploadPhoto(body,"nowatermark").subscribe(mPresenter.baseObserver(list -> { if (list != null && list.size() > 0) { + coverUrl = list.get(0); TCUserMgr.getInstance().setCoverPic(list.get(0), null); initCover(); } else { diff --git a/liveModule/src/main/java/com/dayu/livemodule/MLVBLiveRoomImpl.java b/liveModule/src/main/java/com/dayu/livemodule/MLVBLiveRoomImpl.java index 096a108..d155074 100644 --- a/liveModule/src/main/java/com/dayu/livemodule/MLVBLiveRoomImpl.java +++ b/liveModule/src/main/java/com/dayu/livemodule/MLVBLiveRoomImpl.java @@ -2928,6 +2928,58 @@ public class MLVBLiveRoomImpl extends MLVBLiveRoom implements HttpRequests.Heart ++layerIndex; } + +// // 画布 +// { +// JSONObject layoutParam = new JSONObject(); +// layoutParam.put("image_layer", 1); +// layoutParam.put("input_type", 3); +// layoutParam.put("image_width", 540); +// layoutParam.put("image_height", 960); +// +// JSONObject canvasStream = new JSONObject(); +// canvasStream.put("input_stream_id", mMainStreamId); +// canvasStream.put("layout_params", layoutParam); +// +// inputStreamList.put(canvasStream); +// } +// +// // mainStream +// { +// JSONObject layoutParam = new JSONObject(); +// layoutParam.put("image_layer", 2); +// if (mSubStreamIds.size()>0){ +// layoutParam.put("image_width", 540); +// layoutParam.put("image_height", 480); +// }else { +// layoutParam.put("image_width", 540); +// layoutParam.put("image_height", 960); +// } +// layoutParam.put("location_x", 0); +// layoutParam.put("location_y", 0); +// +// JSONObject mainStream = new JSONObject(); +// mainStream.put("input_stream_id", mMainStreamId); +// mainStream.put("layout_params", layoutParam); +// +// inputStreamList.put(mainStream); +// } +// +// for (String item : mSubStreamIds) { +// JSONObject layoutParam = new JSONObject(); +// layoutParam.put("image_layer", 3); +// layoutParam.put("image_width", 540); +// layoutParam.put("image_height", 480); +// layoutParam.put("location_x", 0); +// layoutParam.put("location_y", 480); +// +// JSONObject mainStream = new JSONObject(); +// mainStream.put("input_stream_id", item); +// mainStream.put("layout_params", layoutParam); +// +// inputStreamList.put(mainStream); +// } + // para JSONObject para = new JSONObject(); para.put("app_id", ""); diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java b/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java index 45d071a..31ab385 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/api/SaleService.java @@ -14,6 +14,8 @@ import com.dayu.base.api.protocol.CommentReplyData; import com.dayu.common.Constants; import io.reactivex.Observable; +import okhttp3.ResponseBody; +import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.GET; import retrofit2.http.POST; @@ -131,4 +133,7 @@ public interface SaleService { */ @POST(Constants.API_7400 + "/leaveMessage/goods/engineer") Observable<BaseResponse<Boolean>> addCommentReply(@Body CommentReplyData data); + + @GET("/api-third/WXUser/getWxQrCode") + Call<ResponseBody> createWxUrl(@Query("path") String path, @Query("width") int width); } diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/activity/PosterShareActivity.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/activity/PosterShareActivity.java new file mode 100644 index 0000000..1a3942a --- /dev/null +++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/activity/PosterShareActivity.java @@ -0,0 +1,149 @@ +package com.bigfish.salecenter.ui.activity; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +import com.badoo.mobile.util.WeakHandler; +import com.bigfish.salecenter.R; +import com.bigfish.salecenter.api.SaleService; +import com.bigfish.salecenter.databinding.ActivityPosterShareBinding; +import com.dayu.base.api.Api; +import com.dayu.base.ui.activity.BaseActivity; +import com.dayu.base.ui.presenter.SImplePresenter; +import com.dayu.common.Constants; +import com.dayu.utils.BitmapUtils; +import com.dayu.utils.CommonUtils; +import com.dayu.utils.GlideImageLoader; +import com.dayu.utils.MPermissionUtils; +import com.dayu.utils.ToastUtils; +import com.umeng.socialize.UMShareAPI; +import com.umeng.socialize.bean.SHARE_MEDIA; + +import java.io.File; +import java.io.InputStream; +import java.util.concurrent.TimeUnit; + +import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import okhttp3.ResponseBody; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class PosterShareActivity extends BaseActivity<SImplePresenter, ActivityPosterShareBinding> { + int mId; + String mFrom = ""; + WeakHandler weakHandler = new WeakHandler(); + + @Override + public void setPresenter() { + + } + + @Override + public int getLayoutId() { + return R.layout.activity_poster_share; + } + + public static void launch(Context context, int id, String title, String imgUrl,String from, double price) { + Intent intent = new Intent(context, PosterShareActivity.class); + intent.putExtra("id", id); + intent.putExtra("img", imgUrl); + intent.putExtra("title", title); + intent.putExtra("from", from); + intent.putExtra("price", price); + context.startActivity(intent); + } + + @Override + public void initView() { + initUser(); + mId = getIntent().getIntExtra("id", 0); + mFrom = getIntent().getStringExtra("from"); + String imgUrl = getIntent().getStringExtra("img"); + String title = getIntent().getStringExtra("title"); + double price = getIntent().getDoubleExtra("price", 0); + mBind.tvPrice.setText("¥" + Double.valueOf(price).intValue()); + mBind.tvTitle.setText(title); + GlideImageLoader.load(this, mBind.ivProduct, imgUrl, R.drawable.icon_img_default); +// GlideImageLoader.loadNoDeal(this,mBind.ivQr,imgUrl,R.drawable.icon_img_default); + mBind.titleBack.setOnClickListener(v -> finish()); + + mBind.btnShare.setOnClickListener(v -> { + showDialog(); + + saveAndShare(); + }); + + initData(); + } + + private void saveAndShare() { + String[] mPerArr = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + + MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() { + @SuppressLint("CheckResult") + @Override + public void onPermissionGranted() { + Observable.timer(200, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(aLong -> { + Bitmap bitmap = BitmapUtils.getBitmap(mBind.llPoster); + File file = BitmapUtils.saveBitmap2Local(bitmap, "poster"+ + Constants.ENVIROMENT + mFrom + mUserId+ mId + ".png"); + if (file != null) { + CommonUtils.shareImg(PosterShareActivity.this, file, SHARE_MEDIA.WEIXIN_CIRCLE, null); + }else { + showToast("保存失败"); + } + weakHandler.postDelayed(() -> { + hideDialog(); + },200); + }); + } + + @Override + public void onPermissionDenied() { + ToastUtils.showShortToast(R.string.request_permission_failure); + } + }); + } + + private void initData() { + showDialog(); + String path = "pages/mallDetail/main?goodsId=" + mId + "&userId=" + mUserId + "&type=2"; + Call<ResponseBody> call = Api.getService(SaleService.class).createWxUrl(path, 470); + call.enqueue(new Callback<ResponseBody>() { + @Override + public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { + hideDialog(); + try { + InputStream is = response.body().byteStream(); + Bitmap bitmap = BitmapFactory.decodeStream(is); + is.close(); + mBind.ivQr.setImageBitmap(bitmap); + } catch (Exception e) { + e.printStackTrace(); + ToastUtils.showShortToast(R.string.error_unknow); + } + + } + + @Override + public void onFailure(Call<ResponseBody> call, Throwable t) { + hideDialog(); + ToastUtils.showShortToast(R.string.error_unknow); + } + }); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); + } +} diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java index d4ada52..badbdfe 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/ProductInstructionFragment.java @@ -1,34 +1,28 @@ package com.bigfish.salecenter.ui.fragment; -import android.content.Intent; import android.graphics.Paint; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import com.bigfish.salecenter.R; -import com.bigfish.salecenter.api.SaleService; import com.bigfish.salecenter.databinding.FragmentProductInstructionBinding; import com.bigfish.salecenter.model.ProductDetailBean; -import com.bigfish.salecenter.model.ProductListBean; -import com.dayu.base.api.Api; +import com.bigfish.salecenter.ui.activity.PosterShareActivity; import com.dayu.base.ui.activity.ImgGalleryActivty; -import com.dayu.base.ui.activity.PreviewActivty; import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.base.ui.presenter.SImplePresenter; -import com.dayu.common.Constants; import com.dayu.event.UserInfo; import com.dayu.utils.BannerImgLoader; import com.dayu.utils.CommonUtils; -import com.dayu.utils.GlideImageLoader; import com.dayu.utils.ToastUtils; import com.dayu.utils.UserManager; +import com.dayu.widgets.WechatShareDialog; import com.umeng.analytics.MobclickAgent; import com.umeng.socialize.bean.SHARE_MEDIA; import com.youth.banner.BannerConfig; import java.util.ArrayList; -import java.util.List; /** * Created by mReturn @@ -81,8 +75,16 @@ public class ProductInstructionFragment extends BaseFragment<SImplePresenter, Fr // // ); if (mDetail != null){ - CommonUtils.shareProgram(mActivity,mDetail.getFirstUrl(),mDetail.getGoodsModel(), - mDetail.getBrief(),mUserId,mDetail.getId(),SHARE_MEDIA.WEIXIN,null); + WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> { + if (pos == 0){ + CommonUtils.shareProgram(mActivity,mDetail.getFirstUrl(),mDetail.getGoodsModel(), + mDetail.getBrief(),mUserId,mDetail.getId(),SHARE_MEDIA.WEIXIN,null); + }else { + PosterShareActivity.launch(mActivity,mDetail.getId(),mDetail.getGoodsModel() + ,mDetail.getFirstUrl(),"pdetail",mDetail.getPrice()); + } + }); + MobclickAgent.onEvent(mActivity,"share_goods"); } } diff --git a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java index 248b7f1..c7fdd10 100644 --- a/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java +++ b/saleCenter/src/main/java/com/bigfish/salecenter/ui/fragment/SaleProductFragment.java @@ -1,13 +1,11 @@ package com.bigfish.salecenter.ui.fragment; -import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.view.View; import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputMethodManager; import com.bigfish.salecenter.R; import com.bigfish.salecenter.adapter.SaleProductAdapter; @@ -18,12 +16,14 @@ import com.bigfish.salecenter.event.RefreshSaleTab; import com.bigfish.salecenter.model.ProductListBean; import com.bigfish.salecenter.presenter.saleproduct.SaleProductContract; import com.bigfish.salecenter.presenter.saleproduct.SaleProductPresent; +import com.bigfish.salecenter.ui.activity.PosterShareActivity; import com.bigfish.salecenter.ui.activity.ProductDetailActivity; import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.common.MyTextWatcher; import com.dayu.event.UserInfo; import com.dayu.utils.CommonUtils; import com.dayu.utils.UserManager; +import com.dayu.widgets.WechatShareDialog; import com.dayu.widgets.listener.OnItemClickListener; import com.umeng.analytics.MobclickAgent; import com.umeng.socialize.bean.SHARE_MEDIA; @@ -186,8 +186,16 @@ public class SaleProductFragment extends BaseFragment<SaleProductPresent, Fragme @Override public void share(ProductListBean item) { MobclickAgent.onEvent(mActivity,"share_goods"); - CommonUtils.shareProgram(mActivity,item.getFirstUrl(),item.getGoodsModel(), - item.getBrief(),mUserId,item.getId(),SHARE_MEDIA.WEIXIN,null); + WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> { + if (pos == 0){ + CommonUtils.shareProgram(mActivity,item.getFirstUrl(),item.getGoodsModel(), + item.getBrief(),mUserId,item.getId(),SHARE_MEDIA.WEIXIN,null); + }else { + PosterShareActivity.launch(mActivity,item.getId(),item.getGoodsModel() + ,item.getFirstUrl(),"product",item.getPrice()); + } + }); + } @Override diff --git a/saleCenter/src/main/release/AndroidManifest.xml b/saleCenter/src/main/release/AndroidManifest.xml index a6639a4..8b3f232 100644 --- a/saleCenter/src/main/release/AndroidManifest.xml +++ b/saleCenter/src/main/release/AndroidManifest.xml @@ -12,6 +12,9 @@ <activity android:name=".ui.activity.SaleOrderDetailActivity" android:screenOrientation="portrait" /> + <activity android:name=".ui.activity.PosterShareActivity" + android:screenOrientation="portrait" + /> </application> </manifest> \ No newline at end of file diff --git a/saleCenter/src/main/res/layout/activity_poster_share.xml b/saleCenter/src/main/res/layout/activity_poster_share.xml new file mode 100644 index 0000000..6c4e809 --- /dev/null +++ b/saleCenter/src/main/res/layout/activity_poster_share.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/color_fa"> + + <RelativeLayout + android:id="@+id/rl_title" + style="@style/title"> + + <TextView + style="@style/text_title" + android:text="分享" /> + + <ImageView + android:id="@+id/title_back" + style="@style/title_image_back" /> + + <ImageView + style="@style/card_line" + android:layout_alignParentBottom="true" /> + </RelativeLayout> + + <LinearLayout + android:id="@+id/ll_poster" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_below="@+id/rl_title" + android:layout_marginLeft="30dp" + android:layout_marginRight="30dp" + android:background="@color/white" + android:orientation="vertical" + android:paddingLeft="20dp" + android:paddingTop="20dp" + android:paddingRight="20dp" + android:paddingBottom="80dp"> + + <ImageView + android:id="@+id/iv_product" + android:layout_width="match_parent" + android:layout_height="180dp" /> + + <TextView + android:id="@+id/tv_title" + style="@style/common_text_style" + android:layout_gravity="center_horizontal" + android:layout_margin="5dp" + android:textSize="16sp" /> + + <TextView + android:id="@+id/tv_price" + style="@style/common_text_style" + android:layout_gravity="center_horizontal" + android:layout_marginBottom="5dp" + android:textColor="@color/text_common_blue" + android:textSize="16sp" /> + + <ImageView + android:id="@+id/iv_qr" + android:layout_width="130dp" + android:layout_height="130dp" + android:layout_gravity="center_horizontal" + android:scaleType="fitCenter" /> + </LinearLayout> + + + <Button + android:id="@+id/btn_share" + android:layout_width="match_parent" + android:layout_height="43dp" + android:layout_alignParentBottom="true" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_marginBottom="5dp" + android:layout_weight="1" + android:background="@drawable/btn_blue_commom" + android:gravity="center" + android:text="保存海报,分享到朋友圈" + android:textColor="@color/white" /> + + + </RelativeLayout> + +</layout> \ No newline at end of file diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserContract.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserContract.java index b3879c2..e035a71 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserContract.java +++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserContract.java @@ -1,11 +1,13 @@ package com.dayu.usercenter.presenter.homeuser; +import com.dayu.base.api.protocol.AddressInfoBean; import com.dayu.base.ui.presenter.BasePresenter; import com.dayu.common.BaseView; import com.dayu.usercenter.data.protocol.EngineerInfo; import com.dayu.usercenter.data.protocol.OrderRecord; import com.dayu.usercenter.data.protocol.TodayAchievement; +import com.dayu.usercenter.model.bean.UserBankInfoBean; import com.dayu.usercenter.model.bean.UserIncomeBean; import java.util.List; @@ -16,6 +18,10 @@ import java.util.List; public interface HomeUserContract { interface View extends BaseView { + void getBankInfoSuccess(UserBankInfoBean info); + + void getAddrInfoSuccess(AddressInfoBean info); + void getPersonalInfoSuccess(EngineerInfo info); void getAchievementSuccess(TodayAchievement achievement); diff --git a/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserPresenter.java b/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserPresenter.java index 6a2dc75..6b16581 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserPresenter.java +++ b/userCenter/src/main/java/com/dayu/usercenter/presenter/homeuser/HomeUserPresenter.java @@ -3,6 +3,7 @@ package com.dayu.usercenter.presenter.homeuser; import android.databinding.ObservableField; import android.os.Bundle; +import com.dayu.base.api.APIService; import com.dayu.base.api.Api; import com.dayu.common.Constants; import com.dayu.usercenter.api.UserApiFactory; @@ -46,11 +47,28 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { getRecordInfo(); getIncomData(); getWechtData(); + getBankInfo(); + getAddrInfo(); } + public void getBankInfo() { + Api.getService(UserService2.class).getUserBankInfo(mUid).compose(Api.applySchedulers()) + .subscribe(baseObserver(data -> { + mView.getBankInfoSuccess(data); + },responeThrowable -> {mView.getBankInfoSuccess(null);} + )); + } + public void getAddrInfo() { + Api.getService(APIService.class).getAddressInfo(mUid).compose(Api.applySchedulers()) + .subscribe(baseObserver(data -> { + mView.getAddrInfoSuccess(data); + },responeThrowable -> {mView.getAddrInfoSuccess(null);} + )); + } + public void getUserInfo() { - UserApiFactory.getEngineerInfo(mUid).subscribe(baseObserver(data ->{ + UserApiFactory.getEngineerInfo(mUid).subscribe(baseObserver(data -> { mInviteCode = data.getInvitationCode(); mView.getPersonalInfoSuccess(data); } @@ -65,12 +83,12 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { private void getIncomData() { Api.getService(UserService2.class).getIncoms(mUid).compose(Api.applySchedulers()) - .subscribe(baseObserver(data->mView.setIncomData(data))); + .subscribe(baseObserver(data -> mView.setIncomData(data))); } private void getWechtData() { Api.getService(UserService2.class).getServiceWechat().compose(Api.applySchedulers()) - .subscribe(baseObserver(wechats->mView.setWechatData(wechats))); + .subscribe(baseObserver(wechats -> mView.setWechatData(wechats))); } @Override @@ -98,20 +116,21 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { } public void dumpToInvate() { - Bundle bundle = new Bundle(); - bundle.putString(Constants.INVITE_CODE,mInviteCode); - bundle.putInt(Constants.TYPE,2); - mView.startActivity(InvateNewActivity.class,bundle); + Bundle bundle = new Bundle(); + bundle.putString(Constants.INVITE_CODE, mInviteCode); + bundle.putInt(Constants.TYPE, 2); + mView.startActivity(InvateNewActivity.class, bundle); } + public void toInviteRecord() { mView.startActivity(InviteRecordActivity.class); } public void invateProvider() { - Bundle bundle = new Bundle(); - bundle.putString(Constants.INVITE_CODE,mInviteCode); - bundle.putInt(Constants.TYPE,1); - mView.startActivity(InvateNewActivity.class,bundle); + Bundle bundle = new Bundle(); + bundle.putString(Constants.INVITE_CODE, mInviteCode); + bundle.putInt(Constants.TYPE, 1); + mView.startActivity(InvateNewActivity.class, bundle); } public void dumpToCacheRecord() { @@ -121,13 +140,14 @@ public class HomeUserPresenter extends HomeUserContract.Presenter { public void toCommonRecord(int type) { mView.toCommonRecord(type); } + public void copy(String str) { mView.copyWechat(str); } + public void dial(String str) { CommonUtils.dialPhone(str); } - } diff --git a/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/CommonRecordActivity.java b/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/CommonRecordActivity.java index fc60465..02c970a 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/CommonRecordActivity.java +++ b/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/CommonRecordActivity.java @@ -4,6 +4,8 @@ import android.content.Context; import android.content.Intent; import android.support.v7.widget.LinearLayoutManager; +import com.alibaba.android.arouter.facade.annotation.Autowired; +import com.alibaba.android.arouter.facade.annotation.Route; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.dayu.base.api.Api; @@ -22,11 +24,16 @@ import java.util.List; * Created by mReturn * on 2020/2/15 **/ -public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityCommonRecordBinding> { + +@Route(path = Constants.PATH_USER_REWARD) +public class CommonRecordActivity extends BaseActivity<SImplePresenter, ActivityCommonRecordBinding> { + int mType; //1.销售奖励 2.服务业绩 3.邀请奖励 4.平台奖励 int page = 1; BaseQuickAdapter<CommonRecordListBean, BaseViewHolder> mAdapter; List<CommonRecordListBean> mDatas = new ArrayList<>(); + @Autowired(name = "type") + int routerType; @Override public int getLayoutId() { @@ -37,17 +44,22 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC public void setPresenter() { } - public static void launch(Context context,int type){ - Intent intent = new Intent(context,CommonRecordActivity.class); - intent.putExtra("type",type); + public static void launch(Context context, int type) { + Intent intent = new Intent(context, CommonRecordActivity.class); + intent.putExtra("type", type); context.startActivity(intent); } @Override public void initView() { initUser(); - mType = getIntent().getIntExtra("type",0); - mBind.receivingBack.setOnClickListener(v->dumpBack()); + if (getIntent().hasExtra("type")){ + mType = getIntent().getIntExtra("type", 0); + }else{ + mType = routerType; + } + + mBind.receivingBack.setOnClickListener(v -> dumpBack()); initTopView(); initData(); mBind.refreshLayout.setEnableLoadMore(false); @@ -64,7 +76,7 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC } private void initTopView() { - switch (mType){ + switch (mType) { case 1: mBind.tvTitle.setText(R.string.user_sale_record); mBind.tvCountDesc.setText(R.string.record_done_sale); @@ -100,8 +112,8 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC //奖励明细 private void getDetailData() { - Api.getService(UserService2.class).getCommonRecordList(mUserId,1,mType, page, Constants.PAGESIZE).compose(Api.applySchedulers()) - .subscribe(mPresenter.baseObserver(data ->{ + Api.getService(UserService2.class).getCommonRecordList(mUserId, 1, mType, page, Constants.PAGESIZE).compose(Api.applySchedulers()) + .subscribe(mPresenter.baseObserver(data -> { mBind.refreshLayout.finishRefresh(); mBind.refreshLayout.finishLoadMore(); if (page == 1) { @@ -118,15 +130,14 @@ public class CommonRecordActivity extends BaseActivity<SImplePresenter,ActivityC } - private void setAdapter() { - if (mAdapter != null){ + if (mAdapter != null) { mAdapter.notifyDataSetChanged(); - }else{ + } else { mAdapter = new BaseQuickAdapter<CommonRecordListBean, BaseViewHolder>(R.layout.item_record_common, mDatas) { @Override protected void convert(BaseViewHolder helper, CommonRecordListBean item) { - helper.setText(R.id.tv_item1, item.getRewardPrice()+""); + helper.setText(R.id.tv_item1, item.getRewardPrice() + ""); helper.setText(R.id.tv_item2, item.getProviderName()); helper.setText(R.id.tv_item3, item.getCreateTime()); } diff --git a/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/EditBankActivity.java b/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/EditBankActivity.java index 6bb3edb..0c1f5ff 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/EditBankActivity.java +++ b/userCenter/src/main/java/com/dayu/usercenter/ui/activity2/EditBankActivity.java @@ -4,21 +4,22 @@ import android.text.Editable; import android.text.TextUtils; import android.widget.EditText; +import com.alibaba.android.arouter.facade.annotation.Route; import com.dayu.base.api.Api; import com.dayu.base.ui.activity.BaseActivity; import com.dayu.base.ui.presenter.SImplePresenter; +import com.dayu.common.Constants; import com.dayu.common.MyTextWatcher; -import com.dayu.event.UserInfo; import com.dayu.usercenter.R; import com.dayu.usercenter.api.UserService2; import com.dayu.usercenter.databinding.ActivityEditBankBinding; import com.dayu.usercenter.event.EditBankEvent; import com.dayu.usercenter.model.EditBankData; import com.dayu.utils.ToastUtils; -import com.dayu.utils.UserManager; import org.greenrobot.eventbus.EventBus; +@Route(path = Constants.PATH_EDIT_BANK) public class EditBankActivity extends BaseActivity<SImplePresenter, ActivityEditBankBinding> { private String bankName; private String bankAccount; diff --git a/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomeUserFragment.java b/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomeUserFragment.java index 71e689b..51b020d 100644 --- a/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomeUserFragment.java +++ b/userCenter/src/main/java/com/dayu/usercenter/ui/fragment/HomeUserFragment.java @@ -12,6 +12,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import com.alibaba.android.arouter.launcher.ARouter; +import com.dayu.base.api.protocol.AddressInfoBean; import com.dayu.base.ui.fragment.BaseFragment; import com.dayu.common.Constants; import com.dayu.event.UserInfo; @@ -25,11 +26,13 @@ import com.dayu.usercenter.data.protocol.TodayAchievement; import com.dayu.usercenter.databinding.FragmentHomeUserBinding; import com.dayu.usercenter.event.RefreshUserInfoEvent; import com.dayu.usercenter.event.RefreshUserRecordEvent; +import com.dayu.usercenter.model.bean.UserBankInfoBean; import com.dayu.usercenter.model.bean.UserIncomeBean; import com.dayu.usercenter.presenter.homeuser.HomeUserContract; import com.dayu.usercenter.presenter.homeuser.HomeUserPresenter; import com.dayu.usercenter.ui.activity.WithdrawalsActivity; import com.dayu.usercenter.ui.activity2.CommonRecordActivity; +import com.dayu.usercenter.ui.activity2.UserInfoActivity; import com.dayu.utils.CommonUtils; import com.dayu.utils.ProgressUtil; import com.dayu.utils.SPUtils; @@ -94,6 +97,43 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo } @Override + public void getBankInfoSuccess(UserBankInfoBean info) { + if (info == null || TextUtils.isEmpty(info.getBankAccount())){ + if (TextUtils.isEmpty((String) SPUtils.get("bank_addr_info",""))){ + showBankAddrDialog(); + SPUtils.put("bank_addr_info","showed"); + } + } + } + + @Override + public void getAddrInfoSuccess(AddressInfoBean info) { + if (info == null || TextUtils.isEmpty(info.getAddress())){ + if (TextUtils.isEmpty((String) SPUtils.get("bank_addr_info",""))){ + showBankAddrDialog(); + SPUtils.put("bank_addr_info","showed"); + } + } + } + + private void showBankAddrDialog() { + CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, + "请尽快填写您的银行卡信息和快递信息,以免影响您的提现和接单。" + , (dialog1, confirm) -> { + if (confirm) { + Intent intent = new Intent(mActivity, UserInfoActivity.class); + startActivity(intent); + dialog1.dismiss(); + } + dialog1.dismiss(); + }); + dialog.setTitle("提示") + .setNegativeButton(mActivity.getString(R.string.cancle)) + .setPositiveButton("去填写"); + dialog.show(); + } + + @Override public void getPersonalInfoSuccess(EngineerInfo info) { // mBind.tvStartLive.setVisibility(View.VISIBLE); mBind.tvStartLive.setVisibility(info.getLiveStatus() == 1?View.VISIBLE:View.GONE); diff --git a/userCenter/src/main/res/layout/activity_edit_bank.xml b/userCenter/src/main/res/layout/activity_edit_bank.xml index af082fb..557c04b 100644 --- a/userCenter/src/main/res/layout/activity_edit_bank.xml +++ b/userCenter/src/main/res/layout/activity_edit_bank.xml @@ -75,6 +75,11 @@ style="@style/edt_user_edit" /> </LinearLayout> + <TextView + style="@style/common_text_style" + android:textColor="@color/common_red" + android:layout_margin="15dp" + android:text="@string/fill_bank_notice" /> <View android:layout_width="wrap_content" diff --git a/userCenter/src/main/res/values/strings.xml b/userCenter/src/main/res/values/strings.xml index 2dcf41e..a36493c 100644 --- a/userCenter/src/main/res/values/strings.xml +++ b/userCenter/src/main/res/values/strings.xml @@ -35,12 +35,12 @@ <string name="sale_record_rule4_3">的佣金。(佣金含依法代扣代缴个人劳务收入所得税费和支付手续费等)</string> <string name="invate_user_title">邀请新人有奖</string> <string name="invate_reward_rule">奖励规则:</string> - <string name="invate_reward_rule1">1、成功邀请一名新人注册大鱼师傅APP, 被邀请人的销售奖励/服务收入的5%给您。</string> + <string name="invate_reward_rule1">1、成功邀请一名新人注册大鱼师傅APP, 被邀请人的前十单销售奖励/服务收入的5%给您。</string> <string name="invate_reward_rule2">2、请务必提醒被邀请人在注册APP时准确输入您的【专属邀请码】;如果输入错误或忘记输入,系统无法识别并记账。</string> <string name="remember_your_invate_code">请牢记您的专属邀请码:</string> <string name="forward_invate_now">马上转发\n【大鱼师傅APP】注册链接</string> <string name="invate_provider_title">推荐商家有奖</string> - <string name="invate_provider_rule1">1、推荐成功注册大鱼商家,该商家前十单销售奖励/服务工费的10%都归您。</string> + <string name="invate_provider_rule1">1、推荐成功注册大鱼商家,该商家前十单销售奖励/服务工费的5%都归您。</string> <string name="invate_provider_rule2">2、请务必提醒商家注册时准确输入您的【专属邀请码】;如果输入错误或忘记输入,系统无法识别并记账。</string> <string name="forward_provider_now">马上转发\n【大鱼商家APP】注册链接</string> <string name="share_finish">分享结束</string>