Commit 718d0060 by han xu

Merge branch 'dev' of http://47.94.101.239:82/android/dayu into dev

parents 6862d0d9 8226338b
......@@ -321,4 +321,7 @@ public class Constants {
public static boolean isPrivacy = false;
public static final String IS_SHOW_BTN = "isShowBtn";
public final static String PAY_STATUS = "payStatus";
public final static String PRICE = "price";
}
......@@ -59,4 +59,6 @@
<color name="color_f2">#F2F2F2</color>
<color name="blue">#7D7DFF</color>
<color name="color_53">#53575e</color>
<color name="transparent">#00000000</color>
</resources>
......@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "29.0.2"
ext.min_sdk_version = 21
ext.target_sdk_version = 29
ext.version_code = 319
ext.verson_name = "3.1.9"
ext.version_code = 320
ext.verson_name = "3.2.0"
ext.gradle_version = '4.0.1'
ext.isReleaseMinify = false
ext.isDebugMinify = false
......
......@@ -57,6 +57,9 @@ android {
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
......
......@@ -10,6 +10,7 @@ import com.dayu.usercenter.model.ApplyLicenceData;
import com.dayu.usercenter.model.ApplyWithdrawData;
import com.dayu.usercenter.model.ChangeNickData;
import com.dayu.usercenter.model.EditBankData;
import com.dayu.usercenter.model.LicencePayData;
import com.dayu.usercenter.model.SaveSceneData;
import com.dayu.usercenter.model.UploadSelfLicenceData;
import com.dayu.usercenter.model.bean.BusinessSceneBean;
......@@ -413,4 +414,6 @@ public interface UserService2 {
@POST(Constants.API_7100 + "/engineerAddress/saveDefault")
Observable<BaseResponse<Boolean>> saveAddress(@Body AddressData saveBean);
@POST(Constants.API_7100 + "/engineerCertificate/pay")
Observable<BaseResponse<Boolean>> licencePay(@Body LicencePayData saveBean);
}
package com.dayu.usercenter.event;
public class RefreshSelfLicenceEvent {
}
package com.dayu.usercenter.model;
public class LicencePayData {
private int id;
private String updated;
public LicencePayData(int id, String updated) {
this.id = id;
this.updated = updated;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUpdated() {
return updated;
}
public void setUpdated(String updated) {
this.updated = updated;
}
}
......@@ -20,6 +20,7 @@ public class SelfLicenceBean {
private String name;
private String url;
private int status;
private int payStatus;
private String createTime;
private String created;
private Object updateTime;
......@@ -27,6 +28,7 @@ public class SelfLicenceBean {
private String engineerName;
private String engineerMobile;
private int engineerId;
private double price;
public int getId() {
return id;
......@@ -115,4 +117,20 @@ public class SelfLicenceBean {
public void setEngineerId(int engineerId) {
this.engineerId = engineerId;
}
public int getPayStatus() {
return payStatus;
}
public void setPayStatus(int payStatus) {
this.payStatus = payStatus;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
package com.dayu.usercenter.presenter.userlicencedetail;
import com.dayu.base.ui.presenter.BaseListPresenter;
import com.dayu.common.BaseView;
public interface UserLicenceDetailContract {
interface View extends BaseView {
}
abstract class Presenter extends BaseListPresenter<View> {
}
}
package com.dayu.usercenter.presenter.userlicencedetail;
import androidx.databinding.ObservableField;
import com.dayu.event.UserInfo;
import com.dayu.utils.UserManager;
public class UserLicenceDetailPresent extends UserLicenceDetailContract.Presenter {
private int mPage;
private int mUserId;
private String mUserName;
public int type; //1.已获得 2.全部 3.自传
private ObservableField<Object> datas = new ObservableField<>();
@Override
public void onAttached() {
UserInfo userInfo = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
mUserName = userInfo.getAccountName();
}
@Override
public ObservableField<Object> getSourceDatas() {
return null;
}
}
package com.dayu.usercenter.ui.activity2;
import android.content.Intent;
import android.os.Bundle;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.base.ui.fragment.BaseFragment;
import com.dayu.common.Constants;
import com.dayu.usercenter.R;
import com.dayu.usercenter.adapter.SelfLicenceAdapter;
import com.dayu.usercenter.databinding.ActivityUserLicenceListBinding;
import com.dayu.usercenter.databinding.FragmentUserLicenceBinding;
import com.dayu.usercenter.event.RefreshSelfLicenceEvent;
import com.dayu.usercenter.event.UploadSelfLicenceEvent;
import com.dayu.usercenter.presenter.userlicence.UserLicenceContract;
import com.dayu.usercenter.presenter.userlicence.UserLicencePresent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
......@@ -56,6 +53,15 @@ public class SelfLicenceActivity extends BaseActivity<UserLicencePresent, Activi
intent.putExtra(Constants.TITLE, item.getName());
intent.putExtra(Constants.URL, item.getUrl());
startActivity(intent);
}else if(2 == item.getStatus()){
Intent intent = new Intent(mActivity, SelfLicenceDetailActivity.class);
intent.putExtra(Constants.ID, item.getId());
intent.putExtra(Constants.TITLE, item.getName());
intent.putExtra(Constants.URL, item.getUrl());
intent.putExtra(Constants.PRICE, item.getPrice());
intent.putExtra(Constants.PAY_STATUS,item.getPayStatus() );
startActivity(intent);
}
});
......@@ -65,6 +71,12 @@ public class SelfLicenceActivity extends BaseActivity<UserLicencePresent, Activi
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void RefreshLicence(RefreshSelfLicenceEvent event) {
mPresenter.refresh();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void afterUpload(UploadSelfLicenceEvent event) {
mPresenter.refresh();
}
......
package com.dayu.usercenter.ui.activity2;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Environment;
import android.webkit.URLUtil;
import android.widget.Button;
import android.widget.ImageView;
import com.dayu.base.api.APIService;
import com.dayu.base.api.Api;
import com.dayu.base.api.protocol.AddShareRecordData;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.usercenter.R;
import com.dayu.usercenter.api.UserService2;
import com.dayu.usercenter.databinding.ActivitySelfLicenceDetailBinding;
import com.dayu.usercenter.event.RefreshSelfLicenceEvent;
import com.dayu.usercenter.model.LicencePayData;
import com.dayu.usercenter.presenter.userlicencedetail.UserLicenceDetailPresent;
import com.dayu.utils.BitmapUtils;
import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.WechatShareDialog;
import com.umeng.socialize.bean.SHARE_MEDIA;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
public class SelfLicenceDetailActivity extends BaseActivity<UserLicenceDetailPresent, ActivitySelfLicenceDetailBinding> {
@Override
public void setPresenter() {
}
@Override
public int getLayoutId() {
return R.layout.activity_self_licence_detail;
}
@Override
public void initView() {
String url = getIntent().getStringExtra(Constants.URL);
String title = getIntent().getStringExtra(Constants.TITLE);
int id = getIntent().getIntExtra(Constants.ID,0);
int payStatus = getIntent().getIntExtra(Constants.PAY_STATUS, 0);
double price = getIntent().getDoubleExtra(Constants.PRICE, 0);
ImageView ivContent = findViewById(R.id.iv_content);
ImageView titleBack = findViewById(R.id.title_back);
Button btnShare = findViewById(R.id.btn_share);
Button btnDownload = findViewById(R.id.btn_download);
GlideImageLoader.load(this, url,ivContent);
if (2 == payStatus){
CustomDialog dialog = new CustomDialog(SelfLicenceDetailActivity.this, R.style.CustomDialog,
"查看、转发、下载证书需支付证书费:\n ¥ "+ price ,
(dialog1, confirm) -> {
if (confirm) {
LicencePayData payData = new LicencePayData(id,"");
Api.getService(UserService2.class).licencePay(payData).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(aBoolean -> {
if (aBoolean){
ToastUtils.showShortToast("支付成功");
EventBus.getDefault().post(new RefreshSelfLicenceEvent());
}else{
payError();
}
dialog1.dismiss();
}));
}else{
SelfLicenceDetailActivity.this.finish();
}
});
dialog.setTitle("付费证书")
.shouldDisMiss(false)
.setPositiveButton("同意");
dialog.show();
}
titleBack.setOnClickListener(v -> finish());
btnShare.setOnClickListener(v -> {
UserInfo mUserInfo = UserManager.getInstance().getUser();
int mUserId = Integer.parseInt(mUserInfo.getAccountId());
WechatShareDialog.getInstance().showBottomDialog(SelfLicenceDetailActivity.this, pos -> {
Bitmap bitmap = BitmapUtils.getBitmap(ivContent);
File file = BitmapUtils.saveBitmap2Local(bitmap, "poster"+
Constants.ENVIROMENT + mUserId+ id + ".png");
if (pos == 0){
CommonUtils.shareImg(SelfLicenceDetailActivity.this, file, SHARE_MEDIA.WEIXIN, null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"微信",id,1);
Api.getService(APIService.class).addShareRecord(data).compose(Api.applySchedulers()).subscribe();
}else {
CommonUtils.shareImg(SelfLicenceDetailActivity.this,file,SHARE_MEDIA.WEIXIN_CIRCLE,null);
AddShareRecordData data = new AddShareRecordData(mUserId,mUserInfo.getAccountName(),
"朋友圈",id,1);
Api.getService(APIService.class).addShareRecord(data).compose(Api.applySchedulers()).subscribe();
}
});
});
btnDownload.setOnClickListener(v -> downloadBySystem(url,title,"image/*"));
}
/**
* 支付失败
*/
private void payError() {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, "账户余额不足!\n请先充值再查看!",
(dialog1, confirm) -> {
mActivity.finish();
});
dialog.setTitle("温馨提醒")
.setPositiveButton("确定");
dialog.setOneButton(true);
dialog.show();
}
private void downloadBySystem(String url, String contentDisposition, String mimeType) {
ToastUtils.showShortToast("开始下载");
// 指定下载地址
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
// 允许媒体扫描,根据下载的文件类型被加入相册、音乐等媒体库
request.allowScanningByMediaScanner();
// 设置通知的显示类型,下载进行时和完成后显示通知
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
// 设置通知栏的标题,如果不设置,默认使用文件名
// request.setTitle("This is title");
// 设置通知栏的描述
request.setDescription("正在下载");
// 允许在计费流量下下载
request.setAllowedOverMetered(true);
// 允许该记录在下载管理界面可见
request.setVisibleInDownloadsUi(true);
// 允许漫游时下载
request.setAllowedOverRoaming(true);
// 允许下载的网路类型
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI|DownloadManager.Request.NETWORK_MOBILE);
// 设置下载文件保存的路径和文件名
String fileName = URLUtil.guessFileName(url, contentDisposition, mimeType);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);
// 另外可选一下方法,自定义下载路径
// request.setDestinationUri()
// request.setDestinationInExternalFilesDir()
final DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
// 添加一个下载任务
long downloadId = downloadManager.enqueue(request);
registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
}
//广播监听下载的各个状态
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
ToastUtils.showShortToast("文件下载成功");
}
}
};
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.usercenter">
......@@ -6,6 +7,9 @@
android:label="@string/app_name"
android:supportsRtl="true">
<activity
android:name=".ui.activity2.SelfLicenceDetailActivity"
android:exported="false" />
<activity
android:name=".ui.activity.TestActivity"
android:screenOrientation="portrait" />
<activity
......@@ -64,17 +68,14 @@
<activity
android:name=".ui.activity.CommeWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity2.UserInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity2.BusinessTypeActivity"
android:screenOrientation="portrait" />
<!-- <activity-->
<!-- android:name=".ui.activity2.UserLicenceActivity"-->
<!-- android:screenOrientation="portrait" />-->
android:screenOrientation="portrait" /> <!-- <activity -->
<!-- android:name=".ui.activity2.UserLicenceActivity" -->
<!-- android:screenOrientation="portrait" /> -->
<activity
android:name=".ui.activity2.SelfLicenceActivity"
android:screenOrientation="portrait" />
......@@ -110,7 +111,6 @@
<activity
android:name=".ui.activity2.UploadSelfLicenceActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.InviteTeamActvity"
android:screenOrientation="portrait" />
......@@ -120,10 +120,9 @@
<activity
android:name=".ui.activity2.RegisterActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity2.ServerRegisterActivity"
android:screenOrientation="portrait" />
</application>
</manifest>
</manifest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/rl_title"
style="@style/title">
<TextView
android:id="@+id/tv_title"
style="@style/text_title"
android:text="资质证书" />
<ImageView
android:id="@+id/title_back"
style="@style/title_image_back" />
</RelativeLayout>
<ImageView style="@style/card_line" />
<ImageView
android:id="@+id/iv_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="20dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_share"
android:layout_width="0dp"
android:layout_height="43dp"
android:layout_weight="1"
android:background="@drawable/btn_green_commom"
android:gravity="center"
android:text="转发"
android:textColor="@color/white" />
<Button
android:id="@+id/btn_download"
android:layout_width="0dp"
android:layout_height="43dp"
android:layout_marginLeft="50dp"
android:layout_weight="1"
android:background="@drawable/btn_blue_commom"
android:gravity="center"
android:text="下载"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment