diff --git a/README.md b/README.md index 1837409..4eb1f17 100644 --- a/README.md +++ b/README.md @@ -13,16 +13,10 @@ Already a pro? Just edit this README.md and make it your own. Want to make it ea - [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files - [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: -``` -cd existing_repo -git remote add origin http://git.dengshikj.com/xuhuixiang/lewan_android.git -git branch -M master -git push -uf origin master -``` +` ## Integrate with your tools -- [ ] [Set up project integrations](http://git.dengshikj.com/xuhuixiang/lewan_android/-/settings/integrations) ## Collaborate with your team diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3d949dc..23e9363 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,11 +49,11 @@ android { applicationId = "com.hbl.yuliao" minSdk = 24 targetSdk = 33 - versionCode = 217 - versionName = "2.1.7" + versionCode = 102 + versionName = "1.0.2" multiDexEnabled = true testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - manifestPlaceholders["IMAPPKEY"] = "23c9cbddd4b876908efdccd0a6f2638d" //正式 + manifestPlaceholders["IMAPPKEY"] = "4a2fd910e1dd63ece3b80a0b371af93f" //正式 manifestPlaceholders["JPUSH_PKGNAME"] = "com.hbl.yuliao" manifestPlaceholders["JPUSH_APPKEY"] = "9041bc22de91e3d9af3cfd23" @@ -61,6 +61,7 @@ android { ndk { abiFilters += listOf("armeabi-v7a", "arm64-v8a") // abiFilters += listOf("x86","x86_64","armeabi","armeabi-v7a","arm64-v8a") +// abiFilters += listOf("armeabi-v7a") } @@ -98,12 +99,12 @@ android { buildConfigField( "String", "AREA_CODE", - "\"+86\"" + "\"+60\"" ) // manifestPlaceholders["APPICON"] = "@mipmap/ic_launche" //正式 // manifestPlaceholders["APPICON_ROUND"] = "@mipmap/ic_launche_round" //正式 //正式服 - manifestPlaceholders["IMAPPKEY"] = "23c9cbddd4b876908efdccd0a6f2638d" //正式 + manifestPlaceholders["IMAPPKEY"] = "4a2fd910e1dd63ece3b80a0b371af93f" //正式 } @@ -125,12 +126,12 @@ android { buildConfigField( "String", "AREA_CODE", - "\"+86\"" + "\"+60\"" ) // manifestPlaceholders["APPICON"] = "@mipmap/ic_launche" //正式 // manifestPlaceholders["APPICON_ROUND"] = "@mipmap/ic_launche_round" //正式 - manifestPlaceholders["IMAPPKEY"] = "23c9cbddd4b876908efdccd0a6f2638d" + manifestPlaceholders["IMAPPKEY"] = "4a2fd910e1dd63ece3b80a0b371af93f" } @@ -195,7 +196,15 @@ dependencies { implementation(project(":fingermanager")) // implementation(project(":call_sw")) - implementation("com.netease.yunxin.kit.call:call-ui:1.8.2") //呼叫组件 UI 包 + implementation("com.netease.yunxin.kit.call:call-ui:1.8.2"){ + + exclude(group = "com.netease.nimlib") + exclude(group = "com.netease.yunxin", module = "nertc-base") + } + implementation ("com.netease.yunxin.kit.call:call:1.8.2") // 基础组件包,不含UI 集成时请导入这个包 + +// implementation("com.netease.yunxin.kit.call:call-ui:2.1.0") // 含 UI 集成时,请导入这个包 + api("com.netease.nimlib:avsignalling:9.11.0") //呼叫组件 依赖信令包 api("com.netease.nimlib:basesdk:9.11.0") //IM SDK // api("com.netease.nimlib:push:9.19.11") @@ -263,7 +272,7 @@ dependencies { implementation("com.github.iwgang:simplifyspan:2.1") // implementation("io.github.hariprasanths:bounceview-android:0.2.0") // implementation("com.contrarywind:Android-PickerView:4.1.9") -// implementation("com.aliyun.dpa:oss-android-sdk:2.9.13") + implementation("com.aliyun.dpa:oss-android-sdk:2.9.13") implementation("com.github.jenly1314:zxing-lite:2.1.1") implementation("com.blankj:utilcodex:1.31.0") implementation("com.github.jenly1314.AppUpdater:app-updater:1.1.3") diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index aa6404e..37c551d 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -204,3 +204,15 @@ -keep class io.agora.**{*;} -dontwarn io.agora.** +-keep class com.netease.mobsec.** {*;} + +# NERTC SDK 的类 +-keep class com.netease.lava.** {*;} +-keep class com.netease.yunxin.** {*;} + +# 呼叫组件的类 +-dontwarn com.netease.yunxin.kit.** +-keep class com.netease.yunxin.kit.** {*;} +-keep public class * extends com.netease.yunxin.kit.corekit.XKitInitOptions +-keep class * implements com.netease.yunxin.kit.corekit.XKitService {*;} + diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 4cb9a33..5a818d7 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 217, - "versionName": "2.1.7", + "versionCode": 102, + "versionName": "1.0.2", "outputFile": "app-release.apk" } ], diff --git a/app/release/yuliao.apk b/app/release/yuliao.apk index 15590f8..edac96f 100644 Binary files a/app/release/yuliao.apk and b/app/release/yuliao.apk differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 49af297..e06e40a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -159,7 +159,7 @@ + android:scheme="yuliao" /> @@ -170,7 +170,7 @@ + android:scheme="yuliao" /> @@ -182,7 +182,7 @@ + android:scheme="yuliao" /> @@ -198,7 +198,6 @@ + android:theme="@style/SampleTheme_new"> @@ -359,7 +358,7 @@ diff --git a/app/src/main/java/com/hbl/yuliao/IMApplication.java b/app/src/main/java/com/hbl/yuliao/IMApplication.java index 6bb4214..2cb94bb 100644 --- a/app/src/main/java/com/hbl/yuliao/IMApplication.java +++ b/app/src/main/java/com/hbl/yuliao/IMApplication.java @@ -281,6 +281,8 @@ public class IMApplication extends MultiDexApplication { private void initUIKit() { SDKOptions sdkOptions = NimSDKOptionConfig.getSDKOptions(this, DataUtils.readAppKey(this)); +// SDKOptions sdkOptions = options(); + IMKitClient.init(this, getLoginInfo(), sdkOptions); ALog.d(Constant.PROJECT_TAG, TAG, "initUIKit"); @@ -325,7 +327,7 @@ public class IMApplication extends MultiDexApplication { private SDKOptions options() { SDKOptions options = new SDKOptions(); //此处仅设置appkey,其他设置请自行参看信令文档设置 :https://dev.yunxin.163.com/docs/product/信令/SDK开发集成/Android开发集成/初始化 - options.appKey = "23c9cbddd4b876908efdccd0a6f2638d"; + options.appKey = "4a2fd910e1dd63ece3b80a0b371af93f"; return options; } diff --git a/app/src/main/java/com/hbl/yuliao/IMUIKitConfig.java b/app/src/main/java/com/hbl/yuliao/IMUIKitConfig.java index 1a3f706..63aed9e 100644 --- a/app/src/main/java/com/hbl/yuliao/IMUIKitConfig.java +++ b/app/src/main/java/com/hbl/yuliao/IMUIKitConfig.java @@ -16,10 +16,10 @@ public class IMUIKitConfig { public static String LOC_COUNTRY_CODE = "loc_country_code"; - public static String RBCHAT_PRIVACY_CN_URL = "http://download.yuliao666.top/userAgreement.html?v=" + System.currentTimeMillis(); - public static String RBCHAT_SERVICE_CN_URL = "http://download.yuliao666.top/serviceAgreement.html?v=" + System.currentTimeMillis(); //服务协议 + public static String RBCHAT_PRIVACY_CN_URL = "https://download.niuchat.xyz/userAgreement.html?v=" + System.currentTimeMillis(); + public static String RBCHAT_SERVICE_CN_URL = "https://download.niuchat.xyz/serviceAgreement.html?v=" + System.currentTimeMillis(); //服务协议 - public static String MIANMI_AGREEMENT_CN_URL = "http://download.yuliao666.top/nopwdAgreement.html?v=" + System.currentTimeMillis(); //免密协议 + public static String MIANMI_AGREEMENT_CN_URL = "https://download.niuchat.xyz/nopwdAgreement.html?v=" + System.currentTimeMillis(); //免密协议 public static String SUBSTATIONID = ApiService.SUBSTATIONID; @@ -35,19 +35,22 @@ public class IMUIKitConfig { /** * 支付地址 */ - public static String ONLINE_PAYMENT_URL = ApiService.URL.equals("https://api.yuliao666.top/") ? "http://admin.yuliao666.top/#/appPay" : "https://admin-test.yuliao666.top/#/appPay"; -// public static String ONLINE_PAYMENT_URL = "http://admin.yuliao666.top/#/appPay"; + public static String ONLINE_PAYMENT_URL = ApiService.URL.equals("https://api.niuchat.xyz/") ? "https://admin.niuchat.xyz/#/appPay" : "https://admin-test.niuchat.xyz/#/appPay"; +// public static String ONLINE_PAYMENT_URL = "http://admin.api.niuchat.xyz/#/appPay"; /** * 分享落地页二维码地址 */ // public static String SHARE_INVCODE = "http://qtalk666.top/#/download?code=%s"; - public static String SHARE_INVCODE = "http://admin.yuliao666.top/#/downLoad?code=%s&userId=%s"; - public static String SHARE_INVCODEGROUP = "http://admin.yuliao666.top/#/downLoad?code=%s&teamId=%s"; - public static String SHARE_INVCODEGROUP1 = "http://admin.yuliao666.top/#/downLoad?teamId=%s"; - public static String SHARE_INVCODE1 = "http://admin.yuliao666.top/#/downLoad?userId=%s"; - public static String SHARE_INVCODE_START = "http://admin.yuliao666.top/#/downLoad"; + public static String SHARE_INVCODE_START_OLD = "http://admin.niuchat.xyz/#/downLoad"; + + public static String SHARE_INVCODE_START= "https://download.niuchat.xyz"; + public static String SHARE_INVCODE = SHARE_INVCODE_START+"?code=%s&userId=%s"; + public static String SHARE_INVCODEGROUP =SHARE_INVCODE_START+ "?code=%s&teamId=%s"; + public static String SHARE_INVCODEGROUP1 =SHARE_INVCODE_START+ "?teamId=%s"; + public static String SHARE_INVCODE1 =SHARE_INVCODE_START+ "?userId=%s"; + /*** * 分享用户ID 二维码 @@ -77,9 +80,9 @@ public class IMUIKitConfig { public static String SHARE_ATM_SAVE_CODE = "time_go_mm://payment_atm/%s"; - public static String bucketName = "letschat";//shenqi777 + public static String bucketName = "yuliao-online"; - public static String OSS_URL = "https://static.bijr3t.com/"; + public static String OSS_URL = "https://api.niuchat.xyz/"; public static String AVATAR_DOWNLOAD_CONTROLLER_URL_ROOT = OSS_URL + "%s"; @@ -121,11 +124,17 @@ public class IMUIKitConfig { public static long NOTIFY_MESSAGE_START_TIME = 1714492800000l; + /** + * 文件上传类型:0 上传到源服务器 1 上传到阿里云 2 上传到七牛云 + */ + public static int UPLOAD_TYPE = 0; + + /** * 娃娃机地址 */ // public static String WAWAJ_PATH =ApiService.URL.equals("https://api.letschat2023.com/")?"https://toy.letschat2023.com/#/?authorizeCode=":"http://toy.newsclub666.com/#/?authorizeCode="; - public static String WAWAJ_PATH = ApiService.URL.equals("https://api.yuliao666.top/") ? "https://toy.letschat2023.com/#/" : "https://toy-test.letschat2023.com/#/"; + public static String WAWAJ_PATH = ApiService.URL.equals("https://api.niuchat.xyz/") ? "https://toy.letschat2023.com/#/" : "https://toy-test.letschat2023.com/#/"; /** * 银币商城 @@ -139,24 +148,24 @@ public class IMUIKitConfig { /** * 银币商城 */ - public static String YINBI_PATH = ApiService.URL.equals("https://api.yuliao666.top/") ? "https://shop.yuliao666.top/#/" : "https://shop.yuliao666.top/"; + public static String YINBI_PATH = ApiService.URL.equals("https://api.niuchat.xyz/") ? "https://shop.niuchat.xyz/#/" : "https://shop.niuchat.xyz/"; /** * 商户管理 */ - public static String MERCHANT_URL = ApiService.URL.equals("https://api.yuliao666.top/") ? "https://biz.letschat2023.com/#/pages/owner/index" : "https://biz-test.letschat2023.com/#/pages/owner/index"; + public static String MERCHANT_URL = ApiService.URL.equals("https://api.niuchat.xyz/") ? "https://biz.letschat2023.com/#/pages/owner/index" : "https://biz-test.letschat2023.com/#/pages/owner/index"; /** * 商户 用户 */ - public static String MERCHANT_USER_URL = ApiService.URL.equals("https://api.yuliao666.top/") ? "https://biz.letschat2023.com/#/" : "https://biz-test.letschat2023.com/#/"; + public static String MERCHANT_USER_URL = ApiService.URL.equals("https://api.niuchat.xyz/") ? "https://biz.letschat2023.com/#/" : "https://biz-test.letschat2023.com/#/"; /** * 兑换积分 */ - public static String SILVER_URL = ApiService.URL.equals("https://api.yuliao666.top/") ? "https://shop.yuliao666.top/#/pages/scanexchange/index?tagCode=" : "https://shop-test.yuliao666.top/#/pages/scanexchange/index?tagCode="; -// public static String SILVER_URL = "https://shop.yuliao666.top/#/pages/scanexchange/index?tagCode="; + public static String SILVER_URL = ApiService.URL.equals("https://api.niuchat.xyz/") ? "https://shop.niuchat.xyz/#/pages/scanexchange/index?tagCode=" : "https://shop-test.niuchat.xyz/#/pages/scanexchange/index?tagCode="; +// public static String SILVER_URL = "https://shop.niuchat.xyz/#/pages/scanexchange/index?tagCode="; // public static String SILVER_URL ="http://192.168.8.200:8080/#/pages/scanexchange/index?tagCode=" ; diff --git a/app/src/main/java/com/hbl/yuliao/contact/ReportActivity.java b/app/src/main/java/com/hbl/yuliao/contact/ReportActivity.java index 8b78089..09c9f74 100644 --- a/app/src/main/java/com/hbl/yuliao/contact/ReportActivity.java +++ b/app/src/main/java/com/hbl/yuliao/contact/ReportActivity.java @@ -38,6 +38,14 @@ import androidx.recyclerview.widget.RecyclerView; //import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; //import com.alibaba.sdk.android.oss.model.PutObjectRequest; //import com.alibaba.sdk.android.oss.model.PutObjectResult; +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.bitmap.CenterCrop; @@ -49,6 +57,7 @@ import com.hbl.yuliao.adapter.ViewHolder; import com.hbl.yuliao.databinding.ActivityTransferInfoBinding; import com.hbl.yuliao.databinding.ReportActivityBinding; import com.hbl.yuliao.model.AlbumBean; +import com.hbl.yuliao.model.AvaterBean; import com.hbl.yuliao.model.GroupActionBean; import com.hbl.yuliao.model.ReportBean; import com.hbl.yuliao.model.StsCredentialsBean; @@ -261,57 +270,108 @@ public class ReportActivity extends BaseActivity { } - String stsCredentialsBean; + StsCredentialsBean stsCredentialsBean; + String stsCredentialsBean1; private void toShangchuanAli() { showLoadingDialog(); -// Api.getInstance().stsCredentials() -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new BaseObserver<>() { -// @Override -// public void onSuccess(Result feedbackResp) { -// stsCredentialsBean = feedbackResp.data; -// toAliYunOss(); -// } -// -// @Override -// public void onError(int code, String msg) { -// dimessLoadingDialog(); -// } -// }); - Api.getInstance().stsCredentials1() + + if(IMUIKitConfig.UPLOAD_TYPE == 0) { + updateImage(0); + }else if(IMUIKitConfig.UPLOAD_TYPE == 1){ + + Api.getInstance().stsCredentials() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result feedbackResp) { + stsCredentialsBean = feedbackResp.data; + toAliYunOss(); + } + + @Override + public void onError(int code, String msg) { + dimessLoadingDialog(); + ToastX.showShortToast(msg); + + } + }); + }else{ + Api.getInstance().stsCredentials1() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result feedbackResp) { + stsCredentialsBean1 = feedbackResp.data; +// toAliYunOss(file, isHead); + toUpdateOssNew(0); + + } + + @Override + public void onError(int code, String msg) { + dimessLoadingDialog(); + ToastX.showShortToast(msg); + + } + }); + } + + + + + } + + + + AvaterBean avaterBean = null; + + private void updateImage(int i) { + RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), localMedias.get(i).getRealPath()); + String fileName = UUID.randomUUID().toString() + "_" + localMedias.get(i).getFileName(); + + MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("file", fileName, imageBody); + Api.getInstance().uploadUserAvatar(imageBodyPart) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean = feedbackResp.data; -// toAliYunOss(file, isHead); - toUpdateOssNew(0); + .subscribe(new BaseObserver>() { + @Override + public void onSuccess(Result feedbackResp) { + avaterBean = feedbackResp.data; + outputStrings.add(avaterBean.getAvatarFilename()); + //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg + if (i == uris.size() - 1) { + sumbit(); + } else { + updateImage(i + 1); + } } @Override public void onError(int code, String msg) { dimessLoadingDialog(); + ToastX.showShortToast(msg); } }); } -// private void toAliYunOss() { -// String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; -// String accessKeyId = "stsCredentialsBean.getAccessKeyId()"; -// String accessKeySecret = "stsCredentialsBean.getAccessKeySecret()"; -// String securityToken = "stsCredentialsBean.getSecurityToken()"; -// String bucketName = IMUIKitConfig.bucketName; -// -// OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); -// OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); -// toUpdateOss(bucketName, 0, oss); -// -// } + + private void toAliYunOss() { + String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; + String accessKeyId = stsCredentialsBean.getAccessKeyId(); + String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); + String securityToken = stsCredentialsBean.getSecurityToken(); + String bucketName = IMUIKitConfig.bucketName; + + OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); + OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); + toUpdateOss(bucketName, 0, oss); + + } // private void toUpdateOssNew( int i) { String updatePathPic = "report"; @@ -335,7 +395,7 @@ public class ReportActivity extends BaseActivity { byte[] sss = convertFileToBytes(file); LogUtils.i("结果是啥开始:" + sss); - uploadManager.put(sss, files, stsCredentialsBean, (key, info, response) -> { + uploadManager.put(sss, files, stsCredentialsBean1, (key, info, response) -> { // LogUtils.i("结果是啥2:" + GsonUtils.beanToJSONString(info)); LogUtils.i("结果是啥2:" + GsonUtils.beanToJSONString(response)); dimessLoadingDialog(); @@ -381,69 +441,69 @@ public class ReportActivity extends BaseActivity { } // -// private void toUpdateOss(String bucketName, int i, OSSClient oss) { -// String updatePathPic = "report"; -//// Calendar calendar= Calendar.getInstance(); -//// String year = calendar.get(Calendar.YEAR)+""; -//// String month = (calendar.get(Calendar.MONTH)+1)<10?"0"+(calendar.get(Calendar.MONTH)+1):(calendar.get(Calendar.MONTH)+1)+""; -//// String d = calendar.get(Calendar.DATE)<10?"0"+calendar.get(Calendar.DAY_OF_MONTH):calendar.get(Calendar.DAY_OF_MONTH)+""; -// -// String data = DataUtils.getCurrentTimeTypeNoline(System.currentTimeMillis()); -// if (i < uris.size()) { -// -// File file = new File(uriStrings.get(i)); -// String fileName = System.currentTimeMillis() + "_" + file.getName(); -// // 构造上传请求。 -// PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + updatePathPic + "/" + data + "/" + fileName + ".png", localMedias.get(i).getRealPath()); -// -// -// put.setProgressCallback((request, currentSize, totalSize) -> { -// LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); -//// if(isVideo){ -//// showLoadingDialog(("正在上传"+(currentSize*100)/totalSize)+"%"); -//// } -// -// -// }); -// -// //OSSAsyncTask task = -// oss.asyncPutObject(put, new OSSCompletedCallback<>() { -// @Override -// public void onSuccess(PutObjectRequest request, PutObjectResult result) { -// LogUtils.i("PutObject", "UploadSuccess"); -// LogUtils.i("ETag", result.getETag()); -// LogUtils.i("RequestId", result.getRequestId()); -// LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); -// outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + updatePathPic + "/" + data + "/" + fileName + ".png"); -// //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg -// if (i == uris.size() - 1) { -// sumbit(); -// } else { -// toUpdateOss(bucketName, i + 1, oss); -// } + private void toUpdateOss(String bucketName, int i, OSSClient oss) { + String updatePathPic = "report"; +// Calendar calendar= Calendar.getInstance(); +// String year = calendar.get(Calendar.YEAR)+""; +// String month = (calendar.get(Calendar.MONTH)+1)<10?"0"+(calendar.get(Calendar.MONTH)+1):(calendar.get(Calendar.MONTH)+1)+""; +// String d = calendar.get(Calendar.DATE)<10?"0"+calendar.get(Calendar.DAY_OF_MONTH):calendar.get(Calendar.DAY_OF_MONTH)+""; + + String data = DataUtils.getCurrentTimeTypeNoline(System.currentTimeMillis()); + if (i < uris.size()) { + + File file = new File(uriStrings.get(i)); + String fileName = System.currentTimeMillis() + "_" + file.getName(); + // 构造上传请求。 + PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + updatePathPic + "/" + data + "/" + fileName + ".png", localMedias.get(i).getRealPath()); + + + put.setProgressCallback((request, currentSize, totalSize) -> { + LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); +// if(isVideo){ +// showLoadingDialog(("正在上传"+(currentSize*100)/totalSize)+"%"); // } -// -// @Override -// public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { -// dimessLoadingDialog(); -// LogUtils.i("ErrorCode", clientExcepion.getMessage()); -// -// // 请求异常。 -// if (clientExcepion != null) { -// // 本地异常,如网络异常等。 -// clientExcepion.printStackTrace(); -// } -// if (serviceException != null) { -// // 服务异常。 -// LogUtils.i("ErrorCode", serviceException.getErrorCode()); -// LogUtils.i("RequestId", serviceException.getRequestId()); -// LogUtils.i("HostId", serviceException.getHostId()); -// LogUtils.i("RawMessage", serviceException.getRawMessage()); -// } -// } -// }); -// } -// } + + + }); + + //OSSAsyncTask task = + oss.asyncPutObject(put, new OSSCompletedCallback<>() { + @Override + public void onSuccess(PutObjectRequest request, PutObjectResult result) { + LogUtils.i("PutObject", "UploadSuccess"); + LogUtils.i("ETag", result.getETag()); + LogUtils.i("RequestId", result.getRequestId()); + LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); + outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + updatePathPic + "/" + data + "/" + fileName + ".png"); + //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg + if (i == uris.size() - 1) { + sumbit(); + } else { + toUpdateOss(bucketName, i + 1, oss); + } + } + + @Override + public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { + dimessLoadingDialog(); + LogUtils.i("ErrorCode", clientExcepion.getMessage()); + + // 请求异常。 + if (clientExcepion != null) { + // 本地异常,如网络异常等。 + clientExcepion.printStackTrace(); + } + if (serviceException != null) { + // 服务异常。 + LogUtils.i("ErrorCode", serviceException.getErrorCode()); + LogUtils.i("RequestId", serviceException.getRequestId()); + LogUtils.i("HostId", serviceException.getHostId()); + LogUtils.i("RawMessage", serviceException.getRawMessage()); + } + } + }); + } + } // //不带圆角,目前视频使用 @@ -531,6 +591,8 @@ public class ReportActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/contact/UserInfoActivity.java b/app/src/main/java/com/hbl/yuliao/contact/UserInfoActivity.java index cd7edb1..d585c50 100644 --- a/app/src/main/java/com/hbl/yuliao/contact/UserInfoActivity.java +++ b/app/src/main/java/com/hbl/yuliao/contact/UserInfoActivity.java @@ -1,16 +1,22 @@ package com.hbl.yuliao.contact; import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.graphics.Color; +import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; @@ -23,6 +29,7 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatImageView; +import androidx.core.view.WindowCompat; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.GridLayoutManager; @@ -36,6 +43,7 @@ import com.hbl.yuliao.adapter.CommonAdapter; import com.hbl.yuliao.adapter.ViewHolder; import com.hbl.yuliao.databinding.ActivityUserInfoBinding; import com.hbl.yuliao.dialog.ActionConfirmDialog; +import com.hbl.yuliao.main.MainActivity; import com.hbl.yuliao.main.mine.EditFriendUserInfoActivity; import com.hbl.yuliao.main.mine.EditUserInfoActivity; import com.hbl.yuliao.main.mine.photo.UserPhotoListActivity; @@ -77,6 +85,8 @@ import com.netease.yunxin.kit.corekit.im.repo.CommonRepo; import com.netease.yunxin.kit.corekit.im.utils.RouterConstant; import com.netease.yunxin.kit.corekit.route.XKitRouter; import com.netease.yunxin.kit.teamkit.ui.utils.viewmodel.TeamSettingViewModel; +import com.netease.yunxin.nertc.ui.CallKitUI; +import com.netease.yunxin.nertc.ui.base.CallParam; import java.util.ArrayList; import java.util.HashMap; @@ -87,6 +97,7 @@ import java.util.Map; //import io.agora.onetoone.http.HttpManager; //import io.agora.onetoone.model.EnterRoomInfoModel; //import io.agora.onetoone.utils.SPUtil; +import cc.shinichi.library.ImagePreview; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import kotlin.Unit; @@ -106,30 +117,75 @@ public class UserInfoActivity extends BaseActivity { private int isAllowAdd = 1; - public static String kIsRtm = "isRtm"; - public static String kIsShowMode = "isShowMode"; - public static String kIsBrodCaster = "isBrodCaster"; - public static String kLocalUid = "localUid"; - public static String kOwnerUid = "ownerUid"; + public static String kIsRtm = "isRtm"; + public static String kIsShowMode = "isShowMode"; + public static String kIsBrodCaster = "isBrodCaster"; + public static String kLocalUid = "localUid"; + public static String kOwnerUid = "ownerUid"; + + public static String kDimensionsWidth = "dimensionsWidth"; + public static String kDimensionsHeight = "dimensionsHeight"; + public static String kFrameRate = "frameRate"; + public static String kBitrate = "bitrate"; - public static String kDimensionsWidth = "dimensionsWidth"; - public static String kDimensionsHeight = "dimensionsHeight"; - public static String kFrameRate = "frameRate"; - public static String kBitrate = "bitrate"; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + if (Build.VERSION.SDK_INT < 30) { + setTheme(R.style.AppThemeStart1); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + getWindow().setStatusBarColor(Color.TRANSPARENT); + } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { getWindow().setDecorFitsSystemWindows(false); } else { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); } - getWindow().setStatusBarColor(Color.TRANSPARENT); + +// if (Build.VERSION.SDK_INT < 30) { +// setTheme(R.style.AppThemeStart1); +// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); +// getWindow().setStatusBarColor(Color.TRANSPARENT); +// } +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { +// getWindow().setDecorFitsSystemWindows(false); +// } else { +// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); +// } super.onCreate(savedInstanceState); + + viewBinding = ActivityUserInfoBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); + + if (Build.VERSION.SDK_INT >= 30) { + + ViewTreeObserver vto = getWindow().getDecorView().getViewTreeObserver(); + vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + getWindow().getDecorView().getViewTreeObserver().removeOnGlobalLayoutListener(this); + } else { + getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(this); + } + + int height = getWindow().getDecorView().getRootView().getHeight(); + int width = getWindow().getDecorView().getRootView().getWidth(); + Log.d("ViewSize", "Height: " + height + ", Width: " + width); + WindowCompat.setDecorFitsSystemWindows(getWindow(), false); + ViewGroup.LayoutParams layoutParams = viewBinding.botLine0.getLayoutParams(); + layoutParams.height = getNavigationBarHeight(UserInfoActivity.this, height); + viewBinding.botLine0.setLayoutParams(layoutParams); + viewBinding.botLine1.setLayoutParams(layoutParams); + viewBinding.botLine2.setLayoutParams(layoutParams); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } + }); + } + + initView(); initData(); @@ -189,7 +245,29 @@ public class UserInfoActivity extends BaseActivity { } }); +// changeUser(); + } + public int getNavigationBarHeight(Context context, int height) { + Resources resources = context.getResources(); + if (isNavBarVisible(this, height)) { + int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); + return resources.getDimensionPixelSize(resourceId); + } else { + return 0; + } + + } + + + private boolean isNavBarVisible(Activity activity, int screenHeight) { + // 获取屏幕的矩形区域,不包含系统UI(如状态栏和导航栏) + Rect rect = new Rect(); + activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); +// int screenHeight = activity.getWindow().getDecorView().getRootView().getHeight(); + LogUtils.i("高度是多少:" + screenHeight + ";;" + rect.bottom); + // 如果矩形区域的高度不等于屏幕高度,说明有系统UI覆盖(如导航栏) + return (screenHeight - rect.bottom) > 0; } private void loadData(String account) { @@ -335,10 +413,15 @@ public class UserInfoActivity extends BaseActivity { return; } - if(isVideoCall){ + if (isVideoCall) { ChatUtils.startVideoCall(UserInfoActivity.this, userInfoData.data.getAccount()); - }else{ +// CallParam param = CallParam.createSingleCallParam(RouterConstant.KEY_CALL_TYPE_VIDEO, IMKitClient.account(), userInfoData.data.getAccount()); +// CallKitUI.startSingleCall(UserInfoActivity.this, param); + } else { ChatUtils.startAudioCall(UserInfoActivity.this, userInfoData.data.getAccount()); + +// CallParam param = CallParam.createSingleCallParam(RouterConstant.KEY_CALL_TYPE_AUDIO, IMKitClient.account(), userInfoData.data.getAccount()); +// CallKitUI.startSingleCall(UserInfoActivity.this, param); } // SPUtil.putBoolean(UserInfoActivity.kIsRtm, true); @@ -675,7 +758,6 @@ public class UserInfoActivity extends BaseActivity { cancelFollow(userInfoData.data.getAccount()); - } private void changeUser() { @@ -770,7 +852,9 @@ public class UserInfoActivity extends BaseActivity { EditUserInfoActivity.launch(getApplicationContext(), Constant.EDIT_SIGN, launcher); } }); - + viewBinding.privateTv.setOnClickListener(v -> { + getDateList(); + }); viewModel.init(accId); viewModel .getFriendFetchResult() @@ -853,6 +937,11 @@ public class UserInfoActivity extends BaseActivity { }); } + @Override + protected void onResume() { + super.onResume(); + } + private List userAlbumBeans = new ArrayList<>(); CommonAdapter commonAdapterAlbum; @@ -916,6 +1005,30 @@ public class UserInfoActivity extends BaseActivity { .error(R.mipmap.default_head_img) .apply(requestOptions).into(viewBinding.logoIv); viewBinding.btnAlbum.setText(getString(R.string.userphoto_title, getString(R.string.wo_txt))); + + + viewBinding.logoIv.setOnClickListener(v -> { + List urls = new ArrayList<>(); + if (userInfoData.data.getAvatar() != null) { + urls.add(userInfoData.data.getAvatar()); + } + if (urls.size() > 0) { + ImagePreview + .getInstance() + // 上下文,必须是activity,不需要担心内存泄漏,本框架已经处理好; + .setContext(this) + // 设置从第几张开始看(索引从0开始) + .setIndex(0) + .setIndicatorShapeResId(0) + // 2:直接传url List + .setImageList(urls) + + // 开启预览 + .start(); + } + + }); + } else { if (userInfoData.isFriend && !userInfoData.isBlack) { viewBinding.friendLy.setVisibility(View.VISIBLE); @@ -938,10 +1051,10 @@ public class UserInfoActivity extends BaseActivity { if (userInfoData.isBlack) { viewBinding.blackLy.setVisibility(View.VISIBLE); - viewBinding.botLy.setVisibility(View.GONE); + viewBinding.privateLl.setVisibility(View.GONE); } else { viewBinding.blackLy.setVisibility(View.GONE); - viewBinding.botLy.setVisibility(View.VISIBLE); + viewBinding.privateLl.setVisibility(View.VISIBLE); } if (userInfoData.friendInfo != null) { @@ -960,7 +1073,8 @@ public class UserInfoActivity extends BaseActivity { viewBinding.bigBg.setBackgroundColor(getColor(R.color.color_eefof7)); } else { viewBinding.broLy.setVisibility(View.GONE); - viewBinding.bigBg.setBackgroundResource(R.drawable.user_true); +// viewBinding.bigBg.setBackgroundResource(R.drawable.user_true); + viewBinding.bigBg.setBackgroundColor(getColor(R.color.color_eefof7)); } diff --git a/app/src/main/java/com/hbl/yuliao/dialog/SelectPushTypeDialog.java b/app/src/main/java/com/hbl/yuliao/dialog/SelectPushTypeDialog.java index 1656cc0..edb994f 100644 --- a/app/src/main/java/com/hbl/yuliao/dialog/SelectPushTypeDialog.java +++ b/app/src/main/java/com/hbl/yuliao/dialog/SelectPushTypeDialog.java @@ -59,6 +59,13 @@ public class SelectPushTypeDialog extends Dialog { onNextCallListener.toType(2); } }); + + dialogSelectPushTypeBinding.cancelTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); changeType(); Window window = getWindow(); @@ -81,15 +88,15 @@ public class SelectPushTypeDialog extends Dialog { if(type==0){ dialogSelectPushTypeBinding.allVisibleIv.setVisibility(View.VISIBLE); - dialogSelectPushTypeBinding.allVisibleTv.setTextColor(getContext().getResources().getColor(R.color.color_themepink)); +// dialogSelectPushTypeBinding.allVisibleTv.setTextColor(getContext().getResources().getColor(R.color.color_themepink)); }else if(type==1){ dialogSelectPushTypeBinding.friendVisibleIv.setVisibility(View.VISIBLE); - dialogSelectPushTypeBinding.friendVisibleTv.setTextColor(getContext().getResources().getColor(R.color.color_themepink)); +// dialogSelectPushTypeBinding.friendVisibleTv.setTextColor(getContext().getResources().getColor(R.color.color_themepink)); }else if(type==2){ dialogSelectPushTypeBinding.onlymeVisibleIv.setVisibility(View.VISIBLE); - dialogSelectPushTypeBinding.onlymeVisibleTv.setTextColor(getContext().getResources().getColor(R.color.color_themepink)); +// dialogSelectPushTypeBinding.onlymeVisibleTv.setTextColor(getContext().getResources().getColor(R.color.color_themepink)); } } diff --git a/app/src/main/java/com/hbl/yuliao/game/JsBridgeActivity.java b/app/src/main/java/com/hbl/yuliao/game/JsBridgeActivity.java index 7d576de..f1f083a 100644 --- a/app/src/main/java/com/hbl/yuliao/game/JsBridgeActivity.java +++ b/app/src/main/java/com/hbl/yuliao/game/JsBridgeActivity.java @@ -1651,7 +1651,7 @@ public class JsBridgeActivity extends BaseActivity { //{"scheme":"time_go_mm://payment_bead/","userId":"10","value":"388a762b474f944b"} String scheme = qrData.getScheme(); if (scheme.startsWith("http")) { - if (scheme.startsWith("http://admin.yuliao666.top/") && scheme.contains("deviceId")) { + if (scheme.startsWith("http://admin.niuchat.xyz/") && scheme.contains("deviceId")) { sendMachine(scheme); } } diff --git a/app/src/main/java/com/hbl/yuliao/game/ShopFragment.java b/app/src/main/java/com/hbl/yuliao/game/ShopFragment.java index e6f2923..0092d39 100644 --- a/app/src/main/java/com/hbl/yuliao/game/ShopFragment.java +++ b/app/src/main/java/com/hbl/yuliao/game/ShopFragment.java @@ -162,9 +162,8 @@ public class ShopFragment extends BaseFragment { }); -// viewBinding.jsbridgeBridgewebview.loadUrl("https://h5.shopxo.vip/#/pages/goods-search/goods-search?category_id=1"); - viewBinding.jsbridgeBridgewebview.loadUrl("http://47.243.153.122:2396/#/"); - +// viewBinding.jsbridgeBridgewebview.loadUrl("http://192.168.0.231:8080/"); + viewBinding.jsbridgeBridgewebview.loadUrl(DataUtils.get(getActivity(), "mall_address", "")); viewBinding.jsbridgeBridgewebview.addHandlerLocal("ZeroCard", new BridgeHandler() { @Override @@ -198,7 +197,7 @@ public class ShopFragment extends BaseFragment { Api.getInstance().authorizeLogin(map) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver>() { + .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result feedbackResp) { if (feedbackResp.data != null) { @@ -578,6 +577,14 @@ public class ShopFragment extends BaseFragment { } + public boolean canGoBack(){ + if(viewBinding.jsbridgeBridgewebview.canGoBack()){ + viewBinding.jsbridgeBridgewebview.goBack(); + return true; + }else { + return false; + } + } /** * WebChromeClient 实现类 diff --git a/app/src/main/java/com/hbl/yuliao/imkit/team/ZhuanShuListActivity.java b/app/src/main/java/com/hbl/yuliao/imkit/team/ZhuanShuListActivity.java index bb966eb..645b978 100644 --- a/app/src/main/java/com/hbl/yuliao/imkit/team/ZhuanShuListActivity.java +++ b/app/src/main/java/com/hbl/yuliao/imkit/team/ZhuanShuListActivity.java @@ -99,7 +99,7 @@ public class ZhuanShuListActivity extends BaseActivity { @Override public void convert(ViewHolder holder, RedpacketGroupBean s, int index) { holder.setText(R.id.title_tv,s.getSenderNickname()+"发给我的专属红包"); - holder.setText(R.id.jine_tv,"¥ "+ AppUtils.getQian(s.getAmount())); + holder.setText(R.id.jine_tv," "+ AppUtils.getQian(s.getAmount())); holder.setText(R.id.time_tv,""+ s.getSendTime()); holder.getView(R.id.item_ry).setOnClickListener(v -> { diff --git a/app/src/main/java/com/hbl/yuliao/login/ChongZhiActivity.java b/app/src/main/java/com/hbl/yuliao/login/ChongZhiActivity.java index 7d354e4..a7360de 100644 --- a/app/src/main/java/com/hbl/yuliao/login/ChongZhiActivity.java +++ b/app/src/main/java/com/hbl/yuliao/login/ChongZhiActivity.java @@ -424,6 +424,8 @@ public class ChongZhiActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/login/PhoneLoginActivity.java b/app/src/main/java/com/hbl/yuliao/login/PhoneLoginActivity.java index 1328b11..6550ecd 100644 --- a/app/src/main/java/com/hbl/yuliao/login/PhoneLoginActivity.java +++ b/app/src/main/java/com/hbl/yuliao/login/PhoneLoginActivity.java @@ -34,6 +34,7 @@ import com.hbl.yuliao.databinding.ActivityPhoneLoginBinding; import com.hbl.yuliao.dialog.ActionConfirmDialog; import com.hbl.yuliao.dialog.SelectCountryDialog; import com.hbl.yuliao.main.MainActivity; +import com.hbl.yuliao.model.ConfigBean; import com.hbl.yuliao.model.CountryBean; import com.hbl.yuliao.model.LoginBean; import com.hbl.yuliao.model.PassWordLoginBean; @@ -55,11 +56,13 @@ import com.netease.yunxin.kit.alog.ALog; import com.netease.yunxin.kit.chatkit.ui.common.RxBus; import com.netease.yunxin.kit.common.ui.activities.BaseActivity; import com.netease.yunxin.kit.common.ui.activities.BrowseActivity; +import com.netease.yunxin.kit.common.ui.dialog.LoadingDialog; import com.netease.yunxin.kit.common.ui.utils.ToastX; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.netease.yunxin.kit.corekit.im.login.LoginCallback; import java.util.HashMap; +import java.util.List; import java.util.Map; import cn.iwgang.simplifyspan.customspan.CustomClickableSpan; @@ -361,7 +364,7 @@ public class PhoneLoginActivity extends BaseActivity { PassWordLoginBean passWordLoginBean = new PassWordLoginBean(uidOrMail, loginPsw, countryBean.getAreaCodeName(), 0, GetAndroidUniqueMark.getUniqueId(PhoneLoginActivity.this), IMUIKitConfig.SUBSTATIONID); -// showLoadingDialog("正在登录……"); + showLoadingDialog("正在登录……"); Api.getInstance().passwordLogin(passWordLoginBean) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -377,13 +380,13 @@ public class PhoneLoginActivity extends BaseActivity { feedbackResp.data.setIsBiz(feedbackResp.data.getUser().getIsBiz()); feedbackResp.data.setAllowGiftCoin(feedbackResp.data.getUser().getAllowGiftCoin()); DataUtils.set(PhoneLoginActivity.this, "login_bean", GsonUtils.beanToJSONString(feedbackResp.data)); - loginIM(feedbackResp.data.getUser_uid(), feedbackResp.data.getUser().getChatToken()); + getConfig(feedbackResp.data.getUser_uid(),feedbackResp.data.getUser().getChatToken()); } @Override public void onError(int code, String msg) { -// dimessLoadingDialog(); + dimessLoadingDialog(); // LogUtils.i("获取到的错误:" + code + "" + msg); // WidgetUtils.showToast(LoginActivity.this, msg + "", WidgetUtils.ToastType.ERROR); ToastX.showShortToast(msg); @@ -392,8 +395,76 @@ public class PhoneLoginActivity extends BaseActivity { }); } + public LoadingDialog loadingDialog; + + public void showLoadingDialog() { + if (loadingDialog == null) + loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + + loadingDialog.show(); + } + + public void showLoadingDialog(String msg) { + if (loadingDialog == null) + loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText(msg); + loadingDialog.show(); + } + + + public void dimessLoadingDialog() { + if (loadingDialog != null) { + loadingDialog.dismiss(); + } + + } + + /** + * 赠送开关配置 + */ + private void getConfig(String uid,String chatToken) { +// DataUtils.set(MainActivity.this, "mall_address", ""); + Api.getInstance().getConfig() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + + @Override + public void onSuccess(Result> feedbackResp) { + + if (feedbackResp.data != null && feedbackResp.data.size() > 0) { + for (ConfigBean configBean : feedbackResp.data) { + if (configBean.getId() == 1) { + DataUtils.set(PhoneLoginActivity.this, "transfer_cash", configBean.getVal().equals("1")); + } + if (configBean.getId() == 4) { + DataUtils.set(PhoneLoginActivity.this, "redpkg_score", configBean.getVal().equals("1")); + } + + if (configBean.getCode().equals("mall_address")) { + DataUtils.set(PhoneLoginActivity.this, "mall_address", configBean.getVal()); + } + } + + + } + loginIM(uid, chatToken); + + } + + @Override + public void onError(int code, String msg) { + DataUtils.set(PhoneLoginActivity.this, "mall_address",""); + loginIM(uid, chatToken); + } + }); + } + + private void doLogin1() { hideSoftInput(this); + showLoadingDialog("正在登录……"); Map maps = new HashMap<>(); maps.put("phone", activityWelcomeBinding.phoneEt.getText().toString()); maps.put("areaCode", countryBean.getAreaCodeName()); @@ -421,11 +492,13 @@ public class PhoneLoginActivity extends BaseActivity { DataUtils.set(PhoneLoginActivity.this, "login_bean", GsonUtils.beanToJSONString(feedbackResp.data)); // loginIM(o.data.getUser_uid(), o.data.getChatToken()); LogUtils.i("用户信息:" + feedbackResp.data.getUser_uid() + ";;" + feedbackResp.data.getUser().getChatToken()); - loginIM(feedbackResp.data.getUser_uid(), feedbackResp.data.getUser().getChatToken()); + getConfig(feedbackResp.data.getUser_uid(),feedbackResp.data.getUser().getChatToken()); + } @Override public void onError(int code, String msg) { + dismissLoading(); ToastX.showShortToast(msg); } }); @@ -499,12 +572,14 @@ public class PhoneLoginActivity extends BaseActivity { new LoginCallback() { @Override public void onError(int errorCode, @NonNull String errorMsg) { + dimessLoadingDialog(); ToastX.showShortToast( String.format(getResources().getString(R.string.login_fail), errorCode)); } @Override public void onSuccess(@Nullable LoginInfo data) { + dimessLoadingDialog(); DataUtils.set(PhoneLoginActivity.this, IMUIKitConfig.LOGIN_ACCOUNT, account); DataUtils.set(PhoneLoginActivity.this, IMUIKitConfig.LOGIN_TOKEN, token); DataUtils.set(PhoneLoginActivity.this,"last_login_time",System.currentTimeMillis()); diff --git a/app/src/main/java/com/hbl/yuliao/login/RegisterActivity.java b/app/src/main/java/com/hbl/yuliao/login/RegisterActivity.java index 70af86e..47c86e3 100644 --- a/app/src/main/java/com/hbl/yuliao/login/RegisterActivity.java +++ b/app/src/main/java/com/hbl/yuliao/login/RegisterActivity.java @@ -47,6 +47,14 @@ import androidx.fragment.app.Fragment; //import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; //import com.alibaba.sdk.android.oss.model.PutObjectRequest; //import com.alibaba.sdk.android.oss.model.PutObjectResult; +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.request.RequestOptions; @@ -61,6 +69,7 @@ import com.hbl.yuliao.dialog.ActionConfirmDialog; import com.hbl.yuliao.dialog.SelectCountryDialog; import com.hbl.yuliao.main.MainActivity; import com.hbl.yuliao.model.AvaterBean; +import com.hbl.yuliao.model.ConfigBean; import com.hbl.yuliao.model.CountryBean; import com.hbl.yuliao.model.LoginBean; import com.hbl.yuliao.model.PassWordLoginBean; @@ -77,6 +86,7 @@ import com.hbl.yuliao.utils.DataUtils; import com.hbl.yuliao.utils.GetAndroidUniqueMark; import com.hbl.yuliao.utils.GsonUtils; import com.hbl.yuliao.utils.LogUtils; +import com.hbl.yuliao.utils.UpdateUtils; import com.hbl.yuliao.welcome.WelcomeActivity; import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.config.PictureMimeType; @@ -119,6 +129,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.UUID; import java.util.regex.Matcher; @@ -148,6 +159,7 @@ public class RegisterActivity extends BaseActivity { String avater = null; long lastTime =0; PermissionExplainDialog permissionExplainDialog; + String pathName = "userAvatarFileName"; @RequiresApi(api = Build.VERSION_CODES.M) @Override @@ -287,10 +299,8 @@ public class RegisterActivity extends BaseActivity { }); activityWelcomeBinding.areaTv.setText(ApiService.AREA_CODE); - activityWelcomeBinding.nanIv.setOnClickListener(v -> changeSex(1)); - activityWelcomeBinding.nanTv.setOnClickListener(v -> changeSex(1)); - activityWelcomeBinding.nvIv.setOnClickListener(v -> changeSex(0)); - activityWelcomeBinding.nvTv.setOnClickListener(v -> changeSex(0)); + activityWelcomeBinding.nanLy.setOnClickListener(v -> changeSex(1)); + activityWelcomeBinding.nvLy.setOnClickListener(v -> changeSex(0)); AnimUtil.setAnimViews(activityWelcomeBinding.sendSmsTv, activityWelcomeBinding.changePassTv, activityWelcomeBinding.nextIv, activityWelcomeBinding.changeSmsCodeTv, activityWelcomeBinding.areaTv, @@ -411,6 +421,7 @@ public class RegisterActivity extends BaseActivity { private void phoneRegister() { + showLoadingDialog("注册中…"); Map maps = new HashMap<>(); maps.put("phone", String.valueOf(activityWelcomeBinding.phoneEt.getText()).trim()); maps.put("areaCode", countryBean.getAreaCodeName()); @@ -437,6 +448,7 @@ public class RegisterActivity extends BaseActivity { @Override public void onError(int code, String msg) { LogUtils.i("获取到的错误:" + code + "" + msg); + dimessLoadingDialog(); ToastX.showShortToast(msg); } }); @@ -477,12 +489,13 @@ public class RegisterActivity extends BaseActivity { DataUtils.set(RegisterActivity.this,"login_bean", GsonUtils.beanToJSONString(feedbackResp.data)); - loginIM(feedbackResp.data.getUser_uid(),feedbackResp.data.getUser().getChatToken()); + getConfig(feedbackResp.data.getUser_uid(),feedbackResp.data.getUser().getChatToken()); + } @Override public void onError(int code, String msg) { -// dimessLoadingDialog(); + dimessLoadingDialog(); LogUtils.i("获取到的错误:" + code + "" + msg); ToastX.showShortToast( msg); @@ -491,28 +504,47 @@ public class RegisterActivity extends BaseActivity { }); } + /** + * 赠送开关配置 + */ + private void getConfig(String uid,String chatToken) { +// DataUtils.set(MainActivity.this, "mall_address", ""); + Api.getInstance().getConfig() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + + @Override + public void onSuccess(Result> feedbackResp) { + + if (feedbackResp.data != null && feedbackResp.data.size() > 0) { + for (ConfigBean configBean : feedbackResp.data) { + if (configBean.getId() == 1) { + DataUtils.set(RegisterActivity.this, "transfer_cash", configBean.getVal().equals("1")); + } + if (configBean.getId() == 4) { + DataUtils.set(RegisterActivity.this, "redpkg_score", configBean.getVal().equals("1")); + } + + if (configBean.getCode().equals("mall_address")) { + DataUtils.set(RegisterActivity.this, "mall_address", configBean.getVal()); + } + } + + + } + loginIM(uid, chatToken); + + } + + @Override + public void onError(int code, String msg) { + DataUtils.set(RegisterActivity.this, "mall_address",""); + loginIM(uid, chatToken); + } + }); + } -// -// AvaterBean avaterBean = null; -// -// private void updateImage(File file) { -// RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); -// MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("file", file.getName(), imageBody); -// Api.getInstance().uploadUserAvatar(imageBodyPart) -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new BaseObserver>() { -// -// @Override -// public void onSuccess(Result feedbackResp) { -// avaterBean = feedbackResp.data; -// } -// -// @Override -// public void onError(int code, String msg) { -// } -// }); -// } private void toStep2() { @@ -873,6 +905,7 @@ public class RegisterActivity extends BaseActivity { new LoginCallback() { @Override public void onError(int errorCode, @NonNull String errorMsg) { + dimessLoadingDialog(); ToastX.showShortToast( String.format(getResources().getString(R.string.login_fail), errorCode)); } @@ -880,7 +913,7 @@ public class RegisterActivity extends BaseActivity { @Override public void onSuccess(@Nullable LoginInfo data) { activityWelcomeBinding.getRoot().setVisibility(View.GONE); - + dimessLoadingDialog(); DataUtils.set(RegisterActivity.this, IMUIKitConfig.LOGIN_ACCOUNT, account); DataUtils.set(RegisterActivity.this, IMUIKitConfig.LOGIN_TOKEN, token); DataUtils.set(RegisterActivity.this,"last_login_time",System.currentTimeMillis()); @@ -930,184 +963,39 @@ public class RegisterActivity extends BaseActivity { } - - String stsCredentialsBean; + UpdateUtils updateUtils; private void toShangchuanAli(File file ) { showLoadingDialog("正在上传头像"); -// Api.getInstance().stsCredentials() -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new BaseObserver>() { -// @Override -// public void onSuccess(Result feedbackResp) { -// stsCredentialsBean = feedbackResp.data; -// toAliYunOss(file); -// } -// -// @Override -// public void onError(int code, String msg) { -// dimessLoadingDialog(); -// } -// }); - - - Api.getInstance().stsCredentials1() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean = feedbackResp.data; -// toAliYunOss(file, isHead); - toQIiNiuYunOss(file); - - } - - @Override - public void onError(int code, String msg) { - dimessLoadingDialog(); - } - }); - } - - - private void toQIiNiuYunOss(File file) { - String updatePathPicHead = "userAvatarFileName"; - UploadOptions options = new UploadOptions(null, null, true, - (key, percent) -> { - }, () -> { - return false; - }); - Configuration configuration = new Configuration.Builder() - .build(); - UploadManager uploadManager = new UploadManager(configuration); - - String fileName = UUID.randomUUID().toString() + "_" + file.getName(); -// LogUtils.i("结果是啥开始:" + stsCredentialsBean + ";;" + file.getAbsolutePath()); - String files = "media/" + updatePathPicHead + "/" + fileName; - uploadManager.put(file, files, stsCredentialsBean, (key, info, response) -> { -// LogUtils.i("结果是啥2:" + GsonUtils.beanToJSONString(info)); -// LogUtils.i("结果是啥2:" + GsonUtils.beanToJSONString(response)); - dimessLoadingDialog(); - if (info != null && info.isOK()) { - // 上传成功 - avater = IMUIKitConfig.OSS_URL+files; - - } else { - // 上传失败 - LogUtils.i("结果是啥失败:" + GsonUtils.beanToJSONString(info)); + updateUtils = new UpdateUtils(); + //Context context, File file, String pathName, OnToActionListener onToActionListener, Handler... handler + updateUtils.toShangchuanAli(RegisterActivity.this,file, pathName,new UpdateUtils.OnToActionListener() { + @Override + public void toSumbitSuccess(String path) { + dimessLoadingDialog(); + avater = path; } - }, options); - } - - - // - - public static byte[] convertFileToBytes(File file) { - // 使用ByteArrayOutputStream来收集字节数据 - FileInputStream fis = null; - try { - fis = new FileInputStream(file); - byte[] bytesArray = new byte[(int) file.length()]; - fis.read(bytesArray); - fis.close(); - return bytesArray; - - } catch (FileNotFoundException e) { -// throw new RuntimeException(e); - return null; - } catch (IOException e) { -// throw new RuntimeException(e); - return null; - - } + @Override + public void toSumbitFails(String message) { + dimessLoadingDialog(); + ToastX.showShortToast(message); + } + },handler); } -// private void toAliYunOss(File file, boolean isHead) { -// String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; -//// String accessKeyId = stsCredentialsBean.getAccessKeyId(); -//// String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); -//// String securityToken = stsCredentialsBean.getSecurityToken(); -// -// String accessKeyId = ""; -// String accessKeySecret = ""; -// String securityToken = ""; -// String bucketName = IMUIKitConfig.bucketName; -// -// OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); -// OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); -// toUpdateOss(bucketName, 0, oss, file); -// -// } public static Handler handler = new Handler(); - // -// private void toUpdateOss(String bucketName, int i, OSSClient oss, File file ) { -// LogUtils.i("1111111111111111111"); -// String updatePathPicHead = "userAvatarFileName"; -// -// LogUtils.i("22222222222222222"); -// -// String fileName = UUID.randomUUID().toString() + "_" + file.getName(); -// LogUtils.i("文件地址是啥:" + file.getAbsolutePath()); -// LogUtils.i("文件地址是啥1:" + file.getPath()); -// -// PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + updatePathPicHead + "/" + fileName, file.getAbsolutePath()); -// -// put.setProgressCallback((request, currentSize, totalSize) -> { -// LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); -// -// }); -// LogUtils.i("55555555555555"); -// -// oss.asyncPutObject(put, new OSSCompletedCallback<>() { -// @Override -// public void onSuccess(PutObjectRequest request, PutObjectResult result) { -// LogUtils.i("PutObject", "UploadSuccess"); -// LogUtils.i("ETag", result.getETag()); -// LogUtils.i("RequestId", result.getRequestId()); -// LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); -// -// handler.post(() -> { -// dimessLoadingDialog(); -// avater = IMUIKitConfig.OSS_URL+"media/" + updatePathPicHead + "/" + fileName; -// }); -// } -// -// @Override -// public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { -// dimessLoadingDialog(); -// LogUtils.i("ErrorCode", clientExcepion.getMessage()); -// -// // 请求异常。 -// if (clientExcepion != null) { -// // 本地异常,如网络异常等。 -// clientExcepion.printStackTrace(); -// } -// if (serviceException != null) { -// // 服务异常。 -// LogUtils.i("ErrorCode", serviceException.getErrorCode()); -// LogUtils.i("RequestId", serviceException.getRequestId()); -// LogUtils.i("HostId", serviceException.getHostId()); -// LogUtils.i("RawMessage", serviceException.getRawMessage()); -// } -// } -// }); -//// } -// } - - - public LoadingDialog loadingDialog; public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } @@ -1136,4 +1024,6 @@ public class RegisterActivity extends BaseActivity { return super .onTouchEvent(event); } + + } diff --git a/app/src/main/java/com/hbl/yuliao/login/WangjiActivity.java b/app/src/main/java/com/hbl/yuliao/login/WangjiActivity.java index 3891296..3b06819 100644 --- a/app/src/main/java/com/hbl/yuliao/login/WangjiActivity.java +++ b/app/src/main/java/com/hbl/yuliao/login/WangjiActivity.java @@ -528,6 +528,8 @@ public class WangjiActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/main/MainActivity.java b/app/src/main/java/com/hbl/yuliao/main/MainActivity.java index 45ce5c5..f48bf30 100644 --- a/app/src/main/java/com/hbl/yuliao/main/MainActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/MainActivity.java @@ -120,7 +120,6 @@ import com.huawei.hms.ml.scan.HmsScan; import com.huawei.hms.ml.scan.HmsScanAnalyzerOptions; import com.king.app.updater.AppUpdater; import com.king.zxing.util.CodeUtils; -//import com.netease.lava.nertc.sdk.NERtcOption; import com.netease.lava.nertc.sdk.NERtcOption; import com.netease.nimlib.sdk.NIMClient; import com.netease.nimlib.sdk.Observer; @@ -290,7 +289,9 @@ public class MainActivity extends BaseActivity { // private ChatMainFragment chatMainFragment; // private ChatMain2Fragment chatMain2Fragment; // private ChatTabFragment chatTabFragment; - private ShopFragment voomFragment; + private ShopFragment shopFragment; + private VoomFragment voomFragment; + private MineFragment walletFragment; FragmentAdapter fragmentAdapter; @@ -426,7 +427,7 @@ public class MainActivity extends BaseActivity { @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { - if (Build.VERSION.SDK_INT <30) { + if (Build.VERSION.SDK_INT < 30) { setTheme(R.style.AppThemeStart1); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); getWindow().setStatusBarColor(Color.TRANSPARENT); @@ -465,7 +466,7 @@ public class MainActivity extends BaseActivity { Log.d("ViewSize", "Height: " + height + ", Width: " + width); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); ViewGroup.LayoutParams layoutParams = activityMainBinding.bottomV.getLayoutParams(); - layoutParams.height = getNavigationBarHeight(MainActivity.this,height); + layoutParams.height = getNavigationBarHeight(MainActivity.this, height); // if(Build.MANUFACTURER.equals("HUAWEI")){ // layoutParams.height = 0; // } @@ -571,11 +572,22 @@ public class MainActivity extends BaseActivity { @Override public void onBackPressed() { - if(activityMainBinding.qrRy.getVisibility()==View.VISIBLE){ - activityMainBinding.qrRy.removeAllViews(); - activityMainBinding.qrRy.setVisibility(View.GONE); - }else { - super.onBackPressed(); + + if (activityMainBinding.viewPager.getCurrentItem() == 2) { + if (shopFragment != null) { + if (!shopFragment.canGoBack()) { +// super.onBackPressed(); + } + } else { +// super.onBackPressed(); + } + } else { + if (activityMainBinding.qrRy.getVisibility() == View.VISIBLE) { + activityMainBinding.qrRy.removeAllViews(); + activityMainBinding.qrRy.setVisibility(View.GONE); + } else { + super.onBackPressed(); + } } } @@ -845,7 +857,7 @@ public class MainActivity extends BaseActivity { private void getVersion() { try { - Api.getInstance().version(com.hbl.yuliao.network.ApiService.AREA_CODE.equals("+86")?7:0, + Api.getInstance().version(0, DataUtils.getVersionCode(MainActivity.this), com.netease.yunxin.kit.chatkit.ui.network.ApiService.SUBSTATIONID1) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -906,40 +918,40 @@ public class MainActivity extends BaseActivity { int loc = DataUtils.get(MainActivity.this, "locale", 1); switch (loc) { case 1: - name = versionBean.getUpgradeHintZhCn().replace("\\n","\n"); + name = versionBean.getUpgradeHintZhCn().replace("\\n", "\n"); break; case 2: - name = versionBean.getUpgradeHintEnUs().replace("\\n","\n"); + name = versionBean.getUpgradeHintEnUs().replace("\\n", "\n"); break; case 3: - name = versionBean.getUpgradeHintJaJp().replace("\\n","\n"); + name = versionBean.getUpgradeHintJaJp().replace("\\n", "\n"); break; default: - name = versionBean.getUpgradeHintZhTw().replace("\\n","\n"); + name = versionBean.getUpgradeHintZhTw().replace("\\n", "\n"); break; } return name; } - public int getNavigationBarHeight(Context context,int height) { + public int getNavigationBarHeight(Context context, int height) { Resources resources = context.getResources(); - if(isNavBarVisible(this,height)){ + if (isNavBarVisible(this, height)) { int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); return resources.getDimensionPixelSize(resourceId); - }else{ + } else { return 0; } } - private boolean isNavBarVisible(Activity activity,int screenHeight) { + private boolean isNavBarVisible(Activity activity, int screenHeight) { // 获取屏幕的矩形区域,不包含系统UI(如状态栏和导航栏) Rect rect = new Rect(); activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); // int screenHeight = activity.getWindow().getDecorView().getRootView().getHeight(); - LogUtils.i("高度是多少:"+screenHeight+";;"+rect.bottom); + LogUtils.i("高度是多少:" + screenHeight + ";;" + rect.bottom); // 如果矩形区域的高度不等于屏幕高度,说明有系统UI覆盖(如导航栏) return (screenHeight - rect.bottom) > 0; } @@ -1097,7 +1109,32 @@ public class MainActivity extends BaseActivity { configCallKit(); } } -// + private void configCallKitNew() { + CallKitUIOptions options = new CallKitUIOptions.Builder() + // 必要:音视频通话 sdk appKey,用于通话中使用 + .rtcAppKey("4a2fd910e1dd63ece3b80a0b371af93f") + // 必要:当前用户 AccId + .currentUserAccId(IMKitClient.account()) + // 通话接听成功的超时时间单位 毫秒,默认30s + .timeOutMillisecond(30 * 1000L) + // 此处为 收到来电时展示的 notification 相关配置,如图标,提示语等。 + .notificationConfigFetcher(invitedInfo -> new CallKitNotificationConfig(R.mipmap.ic_launche)) + // 收到被叫时若 app 在后台,在恢复到前台时是否自动唤起被叫页面,默认为 true + .resumeBGInvitation(true) + // 请求 rtc token 服务,若非安全模式则不需设置(V1.8.0版本之前需要配置,V1.8.0及之后版本无需配置) + //.rtcTokenService((uid, callback) -> requestRtcToken(appKey, uid, callback)) // 自己实现的 token 请求方法 + // 设置初始化 rtc sdk 相关配置,按照所需进行配置 + .rtcSdkOption(new NERtcOption()) + // 呼叫组件初始化 rtc 范围,true-全局初始化,false-每次通话进行初始化以及销毁 + // 全局初始化有助于更快进入首帧页面,当结合其他组件使用时存在rtc初始化冲突可设置false + .rtcInitScope(true) + .build(); +// 若重复初始化会销毁之前的初始化实例,重新初始化 + CallKitUI.init(getApplicationContext(), options); + + + } + // private void configCallKit() { CallKitUIOptions options = new CallKitUIOptions.Builder().soundHelper(new SoundHelper() { @Override @@ -1119,7 +1156,8 @@ public class MainActivity extends BaseActivity { } return resId; } - }).rtcAppKey(DataUtils.readAppKey(this)) + }) + .rtcAppKey(DataUtils.readAppKey(this)) .currentUserAccId(IMKitClient.account()) .userInfoHelper(new UserInfoHelper() { @Override @@ -1170,7 +1208,7 @@ public class MainActivity extends BaseActivity { String callName = ChatDataUtils.getCellBell(IMKitClient.getUserInfo()); LogUtils.d("NotificationConfig callName==" + callName); int rawResource = getResources().getIdentifier(callName, "raw", getPackageName()); - Uri musicUri = Uri.parse("android.resource://com.dskj.rbchat/raw/" + callName); + Uri musicUri = Uri.parse("android.resource://com.hbl.yuliao/raw/" + callName); return new CallKitNotificationConfig(R.mipmap.ic_logo, callName, getString(R.string.message_notifycontent_avchat), content, musicUri); } }) @@ -1251,19 +1289,32 @@ public class MainActivity extends BaseActivity { AppSkinConfig.getInstance().getAppSkinStyle() == AppSkinConfig.AppSkin.commonSkin; ALog.d(Constant.PROJECT_TAG, "MainActivity:initView"); loadConfig(); + + mCurrentTab = activityMainBinding.contactBtnGroup; + resetTabSkin(isCommonSkin); + checkZhiWen(); + shareDateUtils = new ShareDateUtils(); + shareDateUtils.getAllSessionList(); + shareDateUtils.getLocFriends(); + initFragment(); + } + + private void initFragment() { List fragments = new ArrayList<>(); // index2Fragment = new HomeFragment(); chatTabFragment = new ChatTabFragment(); - voomFragment = new ShopFragment(); - walletFragment = new MineFragment(); -// fragments.add(index2Fragment); fragments.add(chatTabFragment); -// if(ApiService.AREA_CODE.equals("+86")) { - fragments.add(voomFragment); -// activityMainBinding.liveBtnGroup.setVisibility(View.VISIBLE); -// }else{ -// activityMainBinding.liveBtnGroup.setVisibility(View.GONE); -// } + if (!TextUtils.isEmpty(DataUtils.get(MainActivity.this, "mall_address", ""))) { + shopFragment = new ShopFragment(); + fragments.add(shopFragment); + activityMainBinding.conversationBtnGroup.setVisibility(View.VISIBLE); + } else { + activityMainBinding.conversationBtnGroup.setVisibility(View.GONE); + } + voomFragment = new VoomFragment(); + fragments.add(voomFragment); + + walletFragment = new MineFragment(); fragments.add(walletFragment); fragmentAdapter = new FragmentAdapter(this); @@ -1282,31 +1333,46 @@ public class MainActivity extends BaseActivity { public void onPageSelected(int position) { super.onPageSelected(position); resetTabStyle(); - if(position == 0){ + if (position == 0) { activityMainBinding.contact.setTextColor( getResources().getColor(R.color.color_2c2c2c)); activityMainBinding.contact.setCompoundDrawablesWithIntrinsicBounds( null, getResources().getDrawable(R.mipmap.chat_img_t), null, null); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); - }else if(position ==2){ + } else if(position==1){ + if (!TextUtils.isEmpty(DataUtils.get(MainActivity.this, "mall_address", ""))) { + activityMainBinding.conversation.setTextColor( + getResources().getColor(R.color.color_2c2c2c)); + activityMainBinding.conversation.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.index_img_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + }else{ + activityMainBinding.mine.setTextColor(getResources().getColor(R.color.color_2c2c2c)); + activityMainBinding.mine.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.wo_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } + }else if (position == 2) { + if (!TextUtils.isEmpty(DataUtils.get(MainActivity.this, "mall_address", ""))) { + activityMainBinding.live.setTextColor(getResources().getColor(R.color.color_2c2c2c)); + activityMainBinding.live.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.voom_img_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + }else{ + activityMainBinding.mine.setTextColor(getResources().getColor(R.color.color_2c2c2c)); + activityMainBinding.mine.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.wo_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } + } else if(position==3){ activityMainBinding.mine.setTextColor(getResources().getColor(R.color.color_2c2c2c)); activityMainBinding.mine.setCompoundDrawablesWithIntrinsicBounds( null, getResources().getDrawable(R.mipmap.wo_t), null, null); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); - }else{ - activityMainBinding.live.setTextColor(getResources().getColor(R.color.color_2c2c2c)); - activityMainBinding.live.setCompoundDrawablesWithIntrinsicBounds( - null, getResources().getDrawable(R.mipmap.voom_img_t), null, null); - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + } } }); - mCurrentTab = activityMainBinding.contactBtnGroup; - resetTabSkin(isCommonSkin); - checkZhiWen(); - shareDateUtils = new ShareDateUtils(); - shareDateUtils.getAllSessionList(); - shareDateUtils.getLocFriends(); } private void checkZhiWen() { @@ -1367,8 +1433,10 @@ public class MainActivity extends BaseActivity { public void processQRCodeScanResult(Activity activity, String originalQrcodeStr) { if (originalQrcodeStr != null) { try { + originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START_OLD,IMUIKitConfig.SHARE_INVCODE_START); + if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("userId")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); // LogUtils.i("数据是啥:" + originalQrcodeStr); String id = uri.getQueryParameter("userId"); //id 值 10943 @@ -1380,7 +1448,7 @@ public class MainActivity extends BaseActivity { .navigate(); } else if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("teamId")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); // LogUtils.i("数据是啥:" + originalQrcodeStr); String id = uri.getQueryParameter("teamId"); //id 值 10943 @@ -1388,7 +1456,7 @@ public class MainActivity extends BaseActivity { } else if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("machineId") && originalQrcodeStr.contains("orderNo")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); // LogUtils.i("数据是啥:" + originalQrcodeStr); String machineId = uri.getQueryParameter("machineId"); //id 值 10943 @@ -1397,7 +1465,7 @@ public class MainActivity extends BaseActivity { showGiftView(machineId, orderNo, money); } else if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("silver_qr_code")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); String silverQrCode = uri.getQueryParameter("silver_qr_code"); // Intent intent2 = new Intent(MainActivity.this, JsBridgeActivity.class); @@ -1482,14 +1550,14 @@ public class MainActivity extends BaseActivity { break; default: if (scheme.startsWith("http")) { - if (scheme.startsWith("http://admin.yuliao666.top/") && scheme.contains("deviceId")) { - sendMachine(scheme); - } else { +// if (scheme.startsWith("http://admin.niuchat.xyz/") && scheme.contains("deviceId")) { +// sendMachine(scheme); +// } else { // showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); Intent intentweb = new Intent(Intent.ACTION_VIEW); intentweb.setData(Uri.parse(scheme)); startActivity(intentweb); - } +// } } else { showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); } @@ -1497,14 +1565,14 @@ public class MainActivity extends BaseActivity { } } else { if (scheme.startsWith("http")) { //是http連接 - if (scheme.startsWith("https://admin.letschat2023.com/") && scheme.contains("deviceId")) { - sendMachine(scheme); - } else { +// if (scheme.startsWith("https://admin.letschat2023.com/") && scheme.contains("deviceId")) { +// sendMachine(scheme); +// } else { // showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(scheme)); startActivity(intent); - } +// } } else { showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); @@ -1812,7 +1880,7 @@ public class MainActivity extends BaseActivity { groupNameTv = (TextView) bottomView.findViewById(R.id.group_name_tv); if (team != null) { - joinTitleTv1.setText("群成员 "+team.getMemberCount()+"人"); + joinTitleTv1.setText("群成员 " + team.getMemberCount() + "人"); if (TextUtils.isEmpty(team.getIcon())) { groupHeadIv.setData(com.netease.yunxin.kit.contactkit.ui.R.mipmap.ic_group_defaulthead, "head"); } else { @@ -1898,7 +1966,7 @@ public class MainActivity extends BaseActivity { joinTv.setOnClickListener(v -> NIMClient.getService(TeamService.class).applyJoinTeam(groupId, null).setCallback(new RequestCallback() { @Override public void onSuccess(Team team1) { - joinTitleTv1.setText("群成员 "+team1.getMemberCount()+"人"); + joinTitleTv1.setText("群成员 " + team1.getMemberCount() + "人"); activityMainBinding.qrRy.removeAllViews(); activityMainBinding.qrRy.setVisibility(View.GONE); @@ -2061,31 +2129,37 @@ public class MainActivity extends BaseActivity { activityMainBinding.contact.setCompoundDrawablesWithIntrinsicBounds( null, getResources().getDrawable(R.mipmap.chat_img_t), null, null); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); - } else if (mCurrentTab == activityMainBinding.liveBtnGroup) { + }else if (mCurrentTab == activityMainBinding.conversationBtnGroup) { activityMainBinding.viewPager.setCurrentItem(1, false); + activityMainBinding.conversation.setTextColor( + getResources().getColor(R.color.color_2c2c2c)); + activityMainBinding.conversation.setCompoundDrawablesWithIntrinsicBounds( + null, getResources().getDrawable(R.mipmap.voom_img_t), null, null); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + + } else if (mCurrentTab == activityMainBinding.liveBtnGroup) { + if (!TextUtils.isEmpty(DataUtils.get(MainActivity.this, "mall_address", ""))) { + activityMainBinding.viewPager.setCurrentItem(2, false); + + }else{ + activityMainBinding.viewPager.setCurrentItem(1, false); + } activityMainBinding.live.setTextColor( getResources().getColor(R.color.color_2c2c2c)); activityMainBinding.live.setCompoundDrawablesWithIntrinsicBounds( - null, getResources().getDrawable(R.mipmap.voom_img_t), null, null); + null, getResources().getDrawable(R.mipmap.index_img_t), null, null); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); } else if (mCurrentTab == activityMainBinding.myselfBtnGroup) { -// if(ApiService.AREA_CODE.equals("+86")) { + if (!TextUtils.isEmpty(DataUtils.get(MainActivity.this, "mall_address", ""))) { + activityMainBinding.viewPager.setCurrentItem(3, false); + }else{ activityMainBinding.viewPager.setCurrentItem(2, false); -// }else{ -// activityMainBinding.viewPager.setCurrentItem(1, false); -// } + } + activityMainBinding.mine.setTextColor(getResources().getColor(R.color.color_2c2c2c)); activityMainBinding.mine.setCompoundDrawablesWithIntrinsicBounds( null, getResources().getDrawable(R.mipmap.wo_t), null, null); getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); - } else if (mCurrentTab == activityMainBinding.conversationBtnGroup) { - activityMainBinding.viewPager.setCurrentItem(0, false); - activityMainBinding.conversation.setTextColor( - getResources().getColor(R.color.color_2c2c2c)); - activityMainBinding.conversation.setCompoundDrawablesWithIntrinsicBounds( - null, getResources().getDrawable(R.mipmap.index_img_t), null, null); - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); - } // if (mCurrentTab == activityMainBinding.contactBtnGroup) { // activityMainBinding.viewPager.setCurrentItem(1, false); @@ -2125,7 +2199,7 @@ public class MainActivity extends BaseActivity { activityMainBinding.conversation.setTextColor( getResources().getColor(R.color.color_babeca)); activityMainBinding.conversation.setCompoundDrawablesWithIntrinsicBounds( - null, getResources().getDrawable(R.mipmap.index_img_f), null, null); + null, getResources().getDrawable(R.mipmap.voom_img_f), null, null); activityMainBinding.contact.setTextColor(getResources().getColor(R.color.color_babeca)); activityMainBinding.contact.setCompoundDrawablesWithIntrinsicBounds( @@ -2133,7 +2207,7 @@ public class MainActivity extends BaseActivity { activityMainBinding.live.setTextColor(getResources().getColor(R.color.color_babeca)); activityMainBinding.live.setCompoundDrawablesWithIntrinsicBounds( - null, getResources().getDrawable(R.mipmap.voom_img_f), null, null); + null, getResources().getDrawable(R.mipmap.index_img_f), null, null); activityMainBinding.mine.setTextColor(getResources().getColor(R.color.color_babeca)); activityMainBinding.mine.setCompoundDrawablesWithIntrinsicBounds( @@ -2501,6 +2575,7 @@ public class MainActivity extends BaseActivity { * 赠送开关配置 */ private void getConfig() { +// DataUtils.set(MainActivity.this, "mall_address", ""); Api.getInstance().getConfig() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -2514,15 +2589,13 @@ public class MainActivity extends BaseActivity { if (configBean.getId() == 1) { DataUtils.set(MainActivity.this, "transfer_cash", configBean.getVal().equals("1")); } -// if (configBean.getId() == 2) { -// DataUtils.set(MainActivity.this, "transfer_jifen", configBean.getVal().equals("1")); -// } -// if (configBean.getId() == 3) { -// DataUtils.set(MainActivity.this, "transfer_score", configBean.getVal().equals("1")); -// } if (configBean.getId() == 4) { DataUtils.set(MainActivity.this, "redpkg_score", configBean.getVal().equals("1")); } + + if (configBean.getCode().equals("mall_address")) { + DataUtils.set(MainActivity.this, "mall_address", configBean.getVal()); + } } @@ -2532,7 +2605,6 @@ public class MainActivity extends BaseActivity { @Override public void onError(int code, String msg) { - } }); } diff --git a/app/src/main/java/com/hbl/yuliao/main/chat/ChatMain2Fragment.java b/app/src/main/java/com/hbl/yuliao/main/chat/ChatMain2Fragment.java index 0019fcd..1470020 100644 --- a/app/src/main/java/com/hbl/yuliao/main/chat/ChatMain2Fragment.java +++ b/app/src/main/java/com/hbl/yuliao/main/chat/ChatMain2Fragment.java @@ -97,19 +97,35 @@ public class ChatMain2Fragment extends BaseFragment { private final NetworkUtils.NetworkStateListener networkStateListener = new NetworkUtils.NetworkStateListener() { @Override - public void onAvailable(NetworkInfo network) { + public void onAvailable(NetworkInfo networkInfo) { if (viewBinding != null) { viewBinding.errorTv.setVisibility(View.GONE); } } @Override - public void onLost(NetworkInfo network) { + public void onLost(NetworkInfo networkInfo) { if (viewBinding != null) { viewBinding.errorTv.setVisibility(View.VISIBLE); } - } + + + +// @Override +// public void onAvailable(NetworkInfo network) { +// if (viewBinding != null) { +// viewBinding.errorTv.setVisibility(View.GONE); +// } +// } +// +// @Override +// public void onLost(NetworkInfo network) { +// if (viewBinding != null) { +// viewBinding.errorTv.setVisibility(View.VISIBLE); +// } +// +// } }; protected final EventNotify editConversation = diff --git a/app/src/main/java/com/hbl/yuliao/main/chat/ChatTabFragment.java b/app/src/main/java/com/hbl/yuliao/main/chat/ChatTabFragment.java index 7d2c44a..7f4c73d 100644 --- a/app/src/main/java/com/hbl/yuliao/main/chat/ChatTabFragment.java +++ b/app/src/main/java/com/hbl/yuliao/main/chat/ChatTabFragment.java @@ -111,19 +111,20 @@ public class ChatTabFragment extends BaseFragment { private final NetworkUtils.NetworkStateListener networkStateListener = new NetworkUtils.NetworkStateListener() { @Override - public void onAvailable(NetworkInfo network) { + public void onAvailable(NetworkInfo networkInfo) { if (viewBinding != null) { viewBinding.errorTv.setVisibility(View.GONE); } } @Override - public void onLost(NetworkInfo network) { + public void onLost(NetworkInfo networkInfo) { if (viewBinding != null) { viewBinding.errorTv.setVisibility(View.VISIBLE); } - } + + }; protected final EventNotify editConversation = diff --git a/app/src/main/java/com/hbl/yuliao/main/index/add/AddFriendsActivity.java b/app/src/main/java/com/hbl/yuliao/main/index/add/AddFriendsActivity.java index 7920c20..a91c2c6 100644 --- a/app/src/main/java/com/hbl/yuliao/main/index/add/AddFriendsActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/index/add/AddFriendsActivity.java @@ -495,8 +495,10 @@ public class AddFriendsActivity extends LllChatBaseActivity { public void processQRCodeScanResult(Activity activity, String originalQrcodeStr) { if (originalQrcodeStr != null) { try { + originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START_OLD,IMUIKitConfig.SHARE_INVCODE_START); + if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("userId")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); LogUtils.i("数据是啥:" + originalQrcodeStr); String id = uri.getQueryParameter("userId"); //id 值 10943 @@ -507,14 +509,14 @@ public class AddFriendsActivity extends LllChatBaseActivity { .withParam("userId", id) .navigate(); } else if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("teamId")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); LogUtils.i("数据是啥:" + originalQrcodeStr); String id = uri.getQueryParameter("teamId"); //id 值 10943 showQrcodeView(id); } else if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("machineId") && originalQrcodeStr.contains("orderNo")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); LogUtils.i("数据是啥:" + originalQrcodeStr); String machineId = uri.getQueryParameter("machineId"); //id 值 10943 @@ -523,7 +525,7 @@ public class AddFriendsActivity extends LllChatBaseActivity { showGiftView(machineId, orderNo, money); } else if (originalQrcodeStr.startsWith(IMUIKitConfig.SHARE_INVCODE_START) && originalQrcodeStr.contains("silver_qr_code")) { - originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); +// originalQrcodeStr = originalQrcodeStr.replace(IMUIKitConfig.SHARE_INVCODE_START, "https://www.baidu.com"); Uri uri = Uri.parse(originalQrcodeStr); String silverQrCode = uri.getQueryParameter("silver_qr_code"); // Intent intent2 = new Intent(AddFriendsActivity.this, JsBridgeActivity.class); @@ -612,16 +614,16 @@ public class AddFriendsActivity extends LllChatBaseActivity { default: if (scheme.startsWith("http")) { - if (scheme.startsWith("http://admin.yuliao666.top/") && scheme.contains("deviceId")) { - sendMachine(scheme); - } else { +// if (scheme.startsWith("http://admin.niuchat.xyz/") && scheme.contains("deviceId")) { +// sendMachine(scheme); +// } else { Intent intentweb = new Intent(Intent.ACTION_VIEW); intentweb.setData(Uri.parse(scheme)); startActivity(intentweb); // activity.startActivity(IntentFactory.createCommonWebActivity2Intent(activity, scheme, "", true)); // showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); - } +// } } else { // ToastX.showLongToast(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); //Context context, String content, String cancel, String sure,boolean showCancel @@ -631,15 +633,15 @@ public class AddFriendsActivity extends LllChatBaseActivity { } } else { if (scheme.startsWith("http")) { - if (scheme.startsWith("http://admin.yuliao666.top/") && scheme.contains("deviceId")) { - sendMachine(scheme); - } else { +// if (scheme.startsWith("http://admin.niuchat.xyz/") && scheme.contains("deviceId")) { +// sendMachine(scheme); +// } else { // activity.startActivity(IntentFactory.createCommonWebActivity2Intent(activity, scheme, "", true)); // showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); Intent intentweb = new Intent(Intent.ACTION_VIEW); intentweb.setData(Uri.parse(scheme)); startActivity(intentweb); - } +// } } else { // ToastX.showLongToast(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); showErrCode(getString(R.string.qrcode_scan_activity_not_surpport_qrcontent)); @@ -1291,13 +1293,6 @@ public class AddFriendsActivity extends LllChatBaseActivity { saveTv.setOnClickListener(v -> { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { -// if (PermissionUtils.hasPermissions( -// AddFriendsActivity.this, Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.READ_MEDIA_VIDEO)) { -// doSaveQrcode(); -// } else { -// requestCameraPermission( -// ); -// } doSaveQrcode(); } else { if (PermissionUtils.hasPermissions( diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/AccoutListActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/AccoutListActivity.java index 0e8a413..35da3ca 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/AccoutListActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/AccoutListActivity.java @@ -270,6 +270,8 @@ public class AccoutListActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/ChangeAccoutActionActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/ChangeAccoutActionActivity.java index 3cf27f8..8ecfddd 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/ChangeAccoutActionActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/ChangeAccoutActionActivity.java @@ -332,6 +332,7 @@ public class ChangeAccoutActionActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/CloseAccountActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/CloseAccountActivity.java index 1a4ca4f..df3600d 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/CloseAccountActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/CloseAccountActivity.java @@ -231,6 +231,8 @@ public class CloseAccountActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/EditFriendUserInfoActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/EditFriendUserInfoActivity.java index bc9f703..45b582a 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/EditFriendUserInfoActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/EditFriendUserInfoActivity.java @@ -9,6 +9,7 @@ import android.content.Intent; import android.content.res.ColorStateList; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.os.Parcelable; import android.text.Editable; import android.text.InputFilter; @@ -112,26 +113,31 @@ public class EditFriendUserInfoActivity extends BaseActivity { binding.tvDone.setOnClickListener( v -> { ContactRepo.updateAlias(friendInfo.getAccount(), binding.etNickname.getText().toString()); - Api.getInstance().addRemark(friendInfo.getAccount(), binding.etNickname.getText().toString()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - if (isFollowValue == 1) { - RxBus.getInstance().post(IMUIKitConfig.CHANGE_FOLLOW_USER); - } - ToastX.showShortToast(getString(R.string.xiugaichenggong_txt)); - setResult(RESULT_OK); - finish(); - } - - @Override - public void onError(int code, String msg) { - LogUtils.i("获取到的错误:" + code + "" + msg); - ToastX.showShortToast(msg); - } - }); +// Api.getInstance().addRemark(friendInfo.getAccount(), binding.etNickname.getText().toString()) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new BaseObserver<>() { +// @Override +// public void onSuccess(Result feedbackResp) { +// if (isFollowValue == 1) { +// RxBus.getInstance().post(IMUIKitConfig.CHANGE_FOLLOW_USER); +// } +// ToastX.showShortToast(getString(R.string.xiugaichenggong_txt)); +// setResult(RESULT_OK); +// finish(); +// } +// +// @Override +// public void onError(int code, String msg) { +// LogUtils.i("获取到的错误:" + code + "" + msg); +// ToastX.showShortToast(msg); +// } +// }); + new Handler().postDelayed(() -> { + ToastX.showShortToast(getString(R.string.xiugaichenggong_txt)); + setResult(RESULT_OK); + finish(); + },1000); }); diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/MineFragment.java b/app/src/main/java/com/hbl/yuliao/main/mine/MineFragment.java index 40cf61e..c156833 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/MineFragment.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/MineFragment.java @@ -401,7 +401,7 @@ public class MineFragment extends BaseFragment { private void getVersion() { try { - Api.getInstance().version(com.hbl.yuliao.network.ApiService.AREA_CODE.equals("+86") ? 7 : 0, DataUtils.getVersionCode(getActivity()), com.netease.yunxin.kit.chatkit.ui.network.ApiService.SUBSTATIONID1) + Api.getInstance().version( 0, DataUtils.getVersionCode(getActivity()), com.netease.yunxin.kit.chatkit.ui.network.ApiService.SUBSTATIONID1) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BaseObserver<>() { diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/UnBindPhoneActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/UnBindPhoneActivity.java index 701c335..336f02e 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/UnBindPhoneActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/UnBindPhoneActivity.java @@ -230,6 +230,8 @@ public class UnBindPhoneActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/UserHeadEditActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/UserHeadEditActivity.java index 25dd343..685d0bb 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/UserHeadEditActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/UserHeadEditActivity.java @@ -268,6 +268,8 @@ public class UserHeadEditActivity extends BaseActivity implements CommonCallback public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/UserInfoActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/UserInfoActivity.java index cbacad6..3a29063 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/UserInfoActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/UserInfoActivity.java @@ -42,6 +42,14 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.codersun.fingerprintcompat.AonFingerChangeCallback; import com.codersun.fingerprintcompat.FingerManager; @@ -60,11 +68,14 @@ import com.hbl.yuliao.dialog.PayCashFingerDialog; import com.hbl.yuliao.dialog.SelectHeadDialog; import com.hbl.yuliao.dialog.SelectSexDialog; import com.hbl.yuliao.game.JsBridgeActivity; +import com.hbl.yuliao.login.RegisterActivity; import com.hbl.yuliao.main.MainActivity; import com.hbl.yuliao.main.authorize.AuthorizeActivity; import com.hbl.yuliao.main.index.add.AddFriendsActivity; +import com.hbl.yuliao.model.AvaterBean; import com.hbl.yuliao.model.BindBean; import com.hbl.yuliao.model.LoginBean; +import com.hbl.yuliao.model.StsCredentialsBean; import com.hbl.yuliao.model.UserShareBean; import com.hbl.yuliao.model.UserUpdateEvent; import com.hbl.yuliao.model.WalletBean; @@ -82,6 +93,7 @@ import com.hbl.yuliao.utils.LogUtils; import com.hbl.yuliao.utils.QRCodeScheme; import com.hbl.yuliao.utils.ShareDateUtils; import com.hbl.yuliao.utils.ToolKits; +import com.hbl.yuliao.utils.UpdateUtils; import com.hbl.yuliao.wallet.SetPayPasswordActivity; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.hbl.yuliao.widget.CircleImageView; @@ -155,6 +167,9 @@ import java.util.UUID; import cc.shinichi.library.ImagePreview; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; public class UserInfoActivity extends BaseActivity implements CommonCallback{ private ActivityLocUserInfoBinding binding; @@ -165,15 +180,29 @@ public class UserInfoActivity extends BaseActivity implements CommonCallback= Build.VERSION_CODES.TIRAMISU) { getWindow().setDecorFitsSystemWindows(false); } else { - getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); } - //SYSTEM_UI_FLAG_LAYOUT_STABLE - getWindow().setStatusBarColor(Color.TRANSPARENT); + +// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { +// getWindow().setDecorFitsSystemWindows(false); +// } else { +// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN +// | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); +// +// } +// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR ); +// +// //SYSTEM_UI_FLAG_LAYOUT_STABLE +// getWindow().setStatusBarColor(Color.TRANSPARENT); super.onCreate(savedInstanceState); binding = ActivityLocUserInfoBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -331,8 +360,9 @@ public class UserInfoActivity extends BaseActivity implements CommonCallback urls = new ArrayList<>(); - String url = IMUIKitConfig.OSS_URL + loginBean.getUser().getPostHomepageBackground(); + String url = loginBean.getUser().getPostHomepageBackground(); + if (!url.startsWith("http")) { + url = IMUIKitConfig.OSS_URL + url; + } urls.add(url); ImagePreview .getInstance() @@ -1060,12 +1089,18 @@ public class UserInfoActivity extends BaseActivity implements CommonCallback>() { +// @Override +// public void onSuccess(Result feedbackResp) { +// stsCredentialsBean = feedbackResp.data; +// toAliYunOss(file, isHead); +// } +// +// @Override +// public void onError(int code, String msg) { +// dimessLoadingDialog(); +// } +// }); +// }else{ +// Api.getInstance().stsCredentials1() +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new BaseObserver>() { +// @Override +// public void onSuccess(Result feedbackResp) { +// stsCredentialsBean1 = feedbackResp.data; +// toQIiNiuYunOss(file, isHead); +// } +// +// @Override +// public void onError(int code, String msg) { +// dimessLoadingDialog(); +// } +// }); +// } + + updateUtils = new UpdateUtils(); + updateUtils.toShangchuanAli(UserInfoActivity.this,file, isHead?"userAvatarFileName":"postHomepageBackground",new UpdateUtils.OnToActionListener() { + @Override + public void toSumbitSuccess(String path) { + dimessLoadingDialog(); + toPush(path, isHead); + } + + @Override + public void toSumbitFails(String message) { + dimessLoadingDialog(); + ToastX.showShortToast(message); + } + },handler); + + + } + + AvaterBean avaterBean = null; + + private void updateImage(File file,boolean isHead) { + RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); + String fileName = UUID.randomUUID().toString() + "_" + file.getName(); + MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("file",fileName, imageBody); + Api.getInstance().uploadUserAvatar(imageBodyPart) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean = feedbackResp.data; -// toAliYunOss(file, isHead); - toQIiNiuYunOss(file, isHead); + @Override + public void onSuccess(Result feedbackResp) { + avaterBean = feedbackResp.data; +// if (isHead) { + toPush(avaterBean.getAvatarFilename(), isHead); +// } else { +// toPush(response.getString("key"), isHead); +// } } @Override public void onError(int code, String msg) { dimessLoadingDialog(); + ToastX.showShortToast(msg); } }); } + + + private void toAliYunOss(File file, boolean isHead) { + String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; + String accessKeyId = stsCredentialsBean.getAccessKeyId(); + String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); + String securityToken = stsCredentialsBean.getSecurityToken(); + String bucketName = IMUIKitConfig.bucketName; + + OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); + OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); + toUpdateOss(bucketName, 0, oss, file, isHead); + + } + + + public static Handler handler = new Handler(); + + // + private void toUpdateOss(String bucketName, int i, OSSClient oss, File file, boolean isHead) { + LogUtils.i("1111111111111111111"); + String updatePathPic = "postHomepageBackground"; + String updatePathPicHead = "userAvatarFileName"; + + LogUtils.i("22222222222222222"); + + String fileName = UUID.randomUUID().toString() + "_" + file.getName(); + LogUtils.i("文件地址是啥:" + file.getAbsolutePath()); + LogUtils.i("文件地址是啥1:" + file.getPath()); + + PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + updatePathPic + "/" + fileName, file.getAbsolutePath()); + if (isHead) { + put = new PutObjectRequest(bucketName, "media/" + updatePathPicHead + "/" + fileName, file.getAbsolutePath()); + } + put.setProgressCallback((request, currentSize, totalSize) -> { + LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); + + }); + LogUtils.i("55555555555555"); + + oss.asyncPutObject(put, new OSSCompletedCallback<>() { + @Override + public void onSuccess(PutObjectRequest request, PutObjectResult result) { + LogUtils.i("PutObject", "UploadSuccess"); + LogUtils.i("ETag", result.getETag()); + LogUtils.i("RequestId", result.getRequestId()); + LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); + + handler.post(() -> { + if (isHead) { + toPush(IMUIKitConfig.OSS_URL + "media/" + updatePathPicHead + "/" + fileName, isHead); + } else { + LogUtils.i("地址是啥:"+IMUIKitConfig.OSS_URL+"media/" + updatePathPic + "/" + fileName); + toPush("media/" + updatePathPic + "/" + fileName, isHead); + } + + }); + } + + @Override + public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { + dimessLoadingDialog(); + LogUtils.i("ErrorCode", clientExcepion.getMessage()); + + // 请求异常。 + if (clientExcepion != null) { + // 本地异常,如网络异常等。 + clientExcepion.printStackTrace(); + } + if (serviceException != null) { + // 服务异常。 + LogUtils.i("ErrorCode", serviceException.getErrorCode()); + LogUtils.i("RequestId", serviceException.getRequestId()); + LogUtils.i("HostId", serviceException.getHostId()); + LogUtils.i("RawMessage", serviceException.getRawMessage()); + } + } + }); +// } + } + + public LoadingDialog loadingDialog; public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } @@ -2124,8 +2315,8 @@ public class UserInfoActivity extends BaseActivity implements CommonCallback { + uploadManager.put(file, files, stsCredentialsBean1, (key, info, response) -> { dimessLoadingDialog(); if (info != null && info.isOK()) { // 上传成功 diff --git a/app/src/main/java/com/hbl/yuliao/main/mine/photo/UserPhotoDetailsActivity.java b/app/src/main/java/com/hbl/yuliao/main/mine/photo/UserPhotoDetailsActivity.java index 695224b..4c311d0 100644 --- a/app/src/main/java/com/hbl/yuliao/main/mine/photo/UserPhotoDetailsActivity.java +++ b/app/src/main/java/com/hbl/yuliao/main/mine/photo/UserPhotoDetailsActivity.java @@ -38,6 +38,14 @@ import androidx.recyclerview.widget.RecyclerView; //import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; //import com.alibaba.sdk.android.oss.model.PutObjectRequest; //import com.alibaba.sdk.android.oss.model.PutObjectResult; +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.hbl.yuliao.IMUIKitConfig; import com.hbl.yuliao.R; @@ -52,6 +60,7 @@ import com.hbl.yuliao.dialog.SelectPhotosMoveDialog; import com.hbl.yuliao.event.UserAlbumsUpdateEvent; import com.hbl.yuliao.model.AlbumBean; import com.hbl.yuliao.model.AlbumItemBean; +import com.hbl.yuliao.model.AvaterBean; import com.hbl.yuliao.model.HisChatShowBean; import com.hbl.yuliao.model.StsCredentialsBean; import com.hbl.yuliao.model.UserAlbumBean; @@ -122,6 +131,9 @@ import java.util.UUID; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; /** * 用户相册详情 @@ -784,40 +796,80 @@ public class UserPhotoDetailsActivity extends LllChatBaseActivity { public void onSubmitPic() { showLoading(); -// Api.getInstance().stsCredentials() -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new BaseObserver>() { -// @Override -// public void onSuccess(Result feedbackResp) { -// stsCredentialsBean = feedbackResp.data; -// toAliYunOss(); -// } -// -// @Override -// public void onError(int code, String msg) { -// dismissLoading(); -// } -// }); - Api.getInstance().stsCredentials1() + + if(IMUIKitConfig.UPLOAD_TYPE == 0) { + updateImage(0); + }else if(IMUIKitConfig.UPLOAD_TYPE == 1){ + Api.getInstance().stsCredentials() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver>() { + @Override + public void onSuccess(Result feedbackResp) { + stsCredentialsBean = feedbackResp.data; + toAliYunOss(); + } + + @Override + public void onError(int code, String msg) { + dismissLoading(); + } + }); + }else{ + Api.getInstance().stsCredentials1() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result feedbackResp) { + stsCredentialsBean1 = feedbackResp.data; +// toAliYunOss(file, isHead); + toUpdateOssNew(0); + + } + + @Override + public void onError(int code, String msg) { + dismissLoading(); + } + }); + } + + + + } + + + AvaterBean avaterBean = null; + + private void updateImage(int i) { + RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), localMedias.get(i).getRealPath()); + String fileName = UUID.randomUUID().toString() + "_" + localMedias.get(i).getFileName(); + + MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("file", fileName, imageBody); + Api.getInstance().uploadUserAvatar(imageBodyPart) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean1 = feedbackResp.data; -// toAliYunOss(file, isHead); - toUpdateOssNew(0); + .subscribe(new BaseObserver>() { + @Override + public void onSuccess(Result feedbackResp) { + avaterBean = feedbackResp.data; + outputStrings.add(avaterBean.getAvatarFilename()); + if (i == uriStrings.size() - 1) { + toAddPhotos(); + } else { + updateImage( i + 1); + } } @Override public void onError(int code, String msg) { - dismissLoading(); } }); } + private void toUpdateOssNew( int i) { String updatePathPic = "user_album"; UploadOptions options = new UploadOptions(null, null, true, @@ -848,9 +900,6 @@ public class UserPhotoDetailsActivity extends LllChatBaseActivity { if (info != null && info.isOK()) { // 上传成功 outputStrings.add(IMUIKitConfig.OSS_URL + files); - //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg -// outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + picPath + "/" + data + "/" + fileName); - //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg if (i == uriStrings.size() - 1) { toAddPhotos(); } else { @@ -884,76 +933,76 @@ public class UserPhotoDetailsActivity extends LllChatBaseActivity { } -// private void toAliYunOss() { -// String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; -// String accessKeyId = stsCredentialsBean.getAccessKeyId(); -// String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); -// String securityToken = stsCredentialsBean.getSecurityToken(); -// String bucketName = IMUIKitConfig.bucketName; -// OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); -// OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); -// toUpdateOss(bucketName, 0, oss); -// -// } -// -// -// private void toUpdateOss(String bucketName, int i, OSSClient oss) { -// String picPath = "user_album"; -// String data = DataUtils.getCurrentTimeTypeNoline(System.currentTimeMillis()); -// if (i < uriStrings.size()) { -// -//// File file = new File(uriStrings.get(i)); -// String fileName = System.currentTimeMillis() + "_" + localMedias.get(i).getFileName(); -// LogUtils.i("上传文件是啥:" + GsonUtils.beanToJSONString(localMedias.get(i))); -// LogUtils.i("上传文件是啥:" + fileName); -// -// // 构造上传请求。 -// PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + picPath + "/" + data + "/" + fileName, localMedias.get(i).getRealPath()); -// put.setProgressCallback((request, currentSize, totalSize) -> { -// LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); -//// if(isVideo){ -//// showLoadingDialog(("正在上传"+(currentSize*100)/totalSize)+"%"); -//// } -// }); -// -// //OSSAsyncTask task = -// oss.asyncPutObject(put, new OSSCompletedCallback<>() { -// @Override -// public void onSuccess(PutObjectRequest request, PutObjectResult result) { -// LogUtils.i("PutObject", "UploadSuccess"); -// LogUtils.i("ETag", result.getETag()); -// LogUtils.i("RequestId", result.getRequestId()); -// LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); -// outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + picPath + "/" + data + "/" + fileName); -// //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg -// if (i == uriStrings.size() - 1) { -// toAddPhotos(); -// } else { -// toUpdateOss(bucketName, i + 1, oss); -// } + private void toAliYunOss() { + String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; + String accessKeyId = stsCredentialsBean.getAccessKeyId(); + String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); + String securityToken = stsCredentialsBean.getSecurityToken(); + String bucketName = IMUIKitConfig.bucketName; + OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); + OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); + toUpdateOss(bucketName, 0, oss); + + } + + + private void toUpdateOss(String bucketName, int i, OSSClient oss) { + String picPath = "user_album"; + String data = DataUtils.getCurrentTimeTypeNoline(System.currentTimeMillis()); + if (i < uriStrings.size()) { + +// File file = new File(uriStrings.get(i)); + String fileName = System.currentTimeMillis() + "_" + localMedias.get(i).getFileName(); + LogUtils.i("上传文件是啥:" + GsonUtils.beanToJSONString(localMedias.get(i))); + LogUtils.i("上传文件是啥:" + fileName); + + // 构造上传请求。 + PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + picPath + "/" + data + "/" + fileName, localMedias.get(i).getRealPath()); + put.setProgressCallback((request, currentSize, totalSize) -> { + LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); +// if(isVideo){ +// showLoadingDialog(("正在上传"+(currentSize*100)/totalSize)+"%"); // } -// -// @Override -// public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { -// dismissLoading(); -// LogUtils.i("ErrorCode", clientExcepion.getMessage()); -// -// // 请求异常。 -// if (clientExcepion != null) { -// // 本地异常,如网络异常等。 -// clientExcepion.printStackTrace(); -// } -// if (serviceException != null) { -// // 服务异常。 -// LogUtils.i("ErrorCode", serviceException.getErrorCode()); -// LogUtils.i("RequestId", serviceException.getRequestId()); -// LogUtils.i("HostId", serviceException.getHostId()); -// LogUtils.i("RawMessage", serviceException.getRawMessage()); -// } -// } -// }); -// } -// } + }); + + //OSSAsyncTask task = + oss.asyncPutObject(put, new OSSCompletedCallback<>() { + @Override + public void onSuccess(PutObjectRequest request, PutObjectResult result) { + LogUtils.i("PutObject", "UploadSuccess"); + LogUtils.i("ETag", result.getETag()); + LogUtils.i("RequestId", result.getRequestId()); + LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); + outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + picPath + "/" + data + "/" + fileName); + //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg + if (i == uriStrings.size() - 1) { + toAddPhotos(); + } else { + toUpdateOss(bucketName, i + 1, oss); + } + } + + @Override + public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { + dismissLoading(); + LogUtils.i("ErrorCode", clientExcepion.getMessage()); + + // 请求异常。 + if (clientExcepion != null) { + // 本地异常,如网络异常等。 + clientExcepion.printStackTrace(); + } + if (serviceException != null) { + // 服务异常。 + LogUtils.i("ErrorCode", serviceException.getErrorCode()); + LogUtils.i("RequestId", serviceException.getRequestId()); + LogUtils.i("HostId", serviceException.getHostId()); + LogUtils.i("RawMessage", serviceException.getRawMessage()); + } + } + }); + } + } // public void toAddPhotos() { diff --git a/app/src/main/java/com/hbl/yuliao/model/RechargeAccountBean.java b/app/src/main/java/com/hbl/yuliao/model/RechargeAccountBean.java new file mode 100644 index 0000000..55597b9 --- /dev/null +++ b/app/src/main/java/com/hbl/yuliao/model/RechargeAccountBean.java @@ -0,0 +1,76 @@ +package com.hbl.yuliao.model; + +/** + * ********************** + * + * @Author bug machine + * 创建时间: 2025/8/13 16:17 + * 用途 + * ********************** + */ +public class RechargeAccountBean { + + private long id; + private String usdtAddress; + private String qrCodeUrl; + private int sortOrder; + private int status; + private String createdAt; + private String updatedAt; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getUsdtAddress() { + return usdtAddress; + } + + public void setUsdtAddress(String usdtAddress) { + this.usdtAddress = usdtAddress; + } + + public String getQrCodeUrl() { + return qrCodeUrl; + } + + public void setQrCodeUrl(String qrCodeUrl) { + this.qrCodeUrl = qrCodeUrl; + } + + public int getSortOrder() { + return sortOrder; + } + + public void setSortOrder(int sortOrder) { + this.sortOrder = sortOrder; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(String createdAt) { + this.createdAt = createdAt; + } + + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(String updatedAt) { + this.updatedAt = updatedAt; + } +} diff --git a/app/src/main/java/com/hbl/yuliao/network/Api.java b/app/src/main/java/com/hbl/yuliao/network/Api.java index f7f282e..41e6fcb 100644 --- a/app/src/main/java/com/hbl/yuliao/network/Api.java +++ b/app/src/main/java/com/hbl/yuliao/network/Api.java @@ -4,6 +4,8 @@ package com.hbl.yuliao.network; import com.hbl.yuliao.utils.LogUtils; import java.net.Proxy; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; @@ -56,6 +58,14 @@ public class Api extends BaseApi { builder.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS); //错误重连 builder.retryOnConnectionFailure(true); + try { + builder.sslSocketFactory(OkHttpUtil.getIgnoreInitedSslContext().getSocketFactory(),OkHttpUtil.IGNORE_SSL_TRUST_MANAGER_X509) + .hostnameVerifier(OkHttpUtil.getIgnoreSslHostnameVerifier()); + } catch (NoSuchAlgorithmException e) { +// throw new RuntimeException(e); + } catch (KeyManagementException e) { +// throw new RuntimeException(e); + } builder.addInterceptor(new HeaderInterceptor()); // if (Config.IS_DEBUG) { diff --git a/app/src/main/java/com/hbl/yuliao/network/ApiService.java b/app/src/main/java/com/hbl/yuliao/network/ApiService.java index c0f9f8a..98c5dc8 100644 --- a/app/src/main/java/com/hbl/yuliao/network/ApiService.java +++ b/app/src/main/java/com/hbl/yuliao/network/ApiService.java @@ -40,6 +40,7 @@ import com.hbl.yuliao.model.PayInfoBean; import com.hbl.yuliao.model.PayInfoWxBean; import com.hbl.yuliao.model.QuesListBean; import com.hbl.yuliao.model.ReadMessageBean; +import com.hbl.yuliao.model.RechargeAccountBean; import com.hbl.yuliao.model.RedLogBean; import com.hbl.yuliao.model.RegisteredBean; import com.hbl.yuliao.model.RtcTokenBean; @@ -105,8 +106,8 @@ public interface ApiService { /*** * 打包的国家编码 */ -// String AREA_CODE = "+886"; - String AREA_CODE = BuildConfig.AREA_CODE; + String AREA_CODE = "+60"; +// String AREA_CODE = BuildConfig.AREA_CODE; /** * 测试环境 @@ -1230,6 +1231,21 @@ public interface ApiService { + + /** + * 充值配置 + */ + @GET("/recharge-order/recharge-account") + Observable> rechargeAccount(); + + + + /** + * 充值配置 + */ + @POST("/recharge-order") + Observable rechargeOrder(@Body Map requestBody); + } diff --git a/app/src/main/java/com/hbl/yuliao/network/OkHttpUtil.java b/app/src/main/java/com/hbl/yuliao/network/OkHttpUtil.java new file mode 100644 index 0000000..b78d1a8 --- /dev/null +++ b/app/src/main/java/com/hbl/yuliao/network/OkHttpUtil.java @@ -0,0 +1,68 @@ +package com.hbl.yuliao.network; + +/** + * ********************** + * + * @Author bug machine + * 创建时间: 2025/12/10 15:36 + * 用途 + * ********************** + */ +import javax.net.ssl.*; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; + +/** + * + * @author Jeter + * + */ +public class OkHttpUtil { + /** + * X509TrustManager instance which ignored SSL certification + */ + public static final X509TrustManager IGNORE_SSL_TRUST_MANAGER_X509 = new X509TrustManager() { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) { + } + + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[] {}; + } + }; + + /** + * Get initialized SSLContext instance which ignored SSL certification + * + * @return + * @throws NoSuchAlgorithmException + * @throws KeyManagementException + */ + public static SSLContext getIgnoreInitedSslContext() throws NoSuchAlgorithmException, KeyManagementException { + var sslContext = SSLContext.getInstance("SSL"); + sslContext.init(null, new TrustManager[] { IGNORE_SSL_TRUST_MANAGER_X509 }, new SecureRandom()); + return sslContext; + } + + /** + * Get HostnameVerifier which ignored SSL certification + * + * @return + */ + public static HostnameVerifier getIgnoreSslHostnameVerifier() { + return new HostnameVerifier() { + @Override + public boolean verify(String arg0, SSLSession arg1) { + return true; + } + }; + } +} + diff --git a/app/src/main/java/com/hbl/yuliao/redpack/ReceiveRedPacketActivity.java b/app/src/main/java/com/hbl/yuliao/redpack/ReceiveRedPacketActivity.java index fc50d8a..92bde13 100644 --- a/app/src/main/java/com/hbl/yuliao/redpack/ReceiveRedPacketActivity.java +++ b/app/src/main/java/com/hbl/yuliao/redpack/ReceiveRedPacketActivity.java @@ -399,14 +399,14 @@ public class ReceiveRedPacketActivity extends BaseActivity implements View.OnCli viewBinding.numberTv1Ly.setVisibility(View.GONE); if (redpacketGroupBean.getType().equals("0")) { // binding.titleTipsTv.setText(bonusBean.getBonus().getNumber() + getString(R.string.red_envelopes_in_total) + String.format("%.2f", Integer.parseInt(bonusBean.getBonus().getMoney().trim()) / 100f) + getString(R.string.danwei_txt)); - viewBinding.titleTipsTv.setText(String.format(getString(R.string.red_envelopes_in_total), redpacketGroupBean.getCount() + "", AppUtils.getQian(redpacketGroupBean.getAmount())+"元")); + viewBinding.titleTipsTv.setText(String.format(getString(R.string.red_envelopes_in_total), redpacketGroupBean.getCount() + "", AppUtils.getQian(redpacketGroupBean.getAmount())+"")); } else { if (redpacketGroupBean.getGrabbers() == null || redpacketGroupBean.getGrabbers().size() == 0) { if (redpacketGroupBean.getStatus() == 2) { - viewBinding.titleTipsTv.setText(getString(R.string.hbxq_yiguoqi_txt) + getString(R.string.received_txt1) + "0/" + redpacketGroupBean.getCount() + getString(R.string.ge_gong_txt) + "0" + "/" + AppUtils.getQian(redpacketGroupBean.getAmount())+"元"); + viewBinding.titleTipsTv.setText(getString(R.string.hbxq_yiguoqi_txt) + getString(R.string.received_txt1) + "0/" + redpacketGroupBean.getCount() + getString(R.string.ge_gong_txt) + "0" + "/" + AppUtils.getQian(redpacketGroupBean.getAmount())+""); } else { - viewBinding.titleTipsTv.setText(getString(R.string.received_txt1) + "0/" + redpacketGroupBean.getCount() + getString(R.string.ge_gong_txt) + "0" + "/" + AppUtils.getQian(redpacketGroupBean.getAmount())+"元"); + viewBinding.titleTipsTv.setText(getString(R.string.received_txt1) + "0/" + redpacketGroupBean.getCount() + getString(R.string.ge_gong_txt) + "0" + "/" + AppUtils.getQian(redpacketGroupBean.getAmount())+""); } } else { int size = 0; @@ -428,10 +428,10 @@ public class ReceiveRedPacketActivity extends BaseActivity implements View.OnCli } if (redpacketGroupBean.getStatus() == 2) { viewBinding.titleTipsTv.setText(getString(R.string.hbxq_yiguoqi_txt) + getString(R.string.received_txt1) + redpacketGroupBean.getGrabbers().size() + "/" + redpacketGroupBean.getCount() + getString(R.string.ge_gong_txt) - + AppUtils.getQian(size) + "/" +AppUtils.getQian(redpacketGroupBean.getAmount())+"元"); + + AppUtils.getQian(size) + "/" +AppUtils.getQian(redpacketGroupBean.getAmount())+""); } else { viewBinding.titleTipsTv.setText(getString(R.string.received_txt1) + redpacketGroupBean.getGrabbers().size() + "/" + redpacketGroupBean.getCount() + getString(R.string.ge_gong_txt) - + AppUtils.getQian(size) + "/" +AppUtils.getQian(redpacketGroupBean.getAmount())+"元"); + + AppUtils.getQian(size) + "/" +AppUtils.getQian(redpacketGroupBean.getAmount())+""); } diff --git a/app/src/main/java/com/hbl/yuliao/utils/DataUtils.java b/app/src/main/java/com/hbl/yuliao/utils/DataUtils.java index dbadb19..4dbeeb9 100644 --- a/app/src/main/java/com/hbl/yuliao/utils/DataUtils.java +++ b/app/src/main/java/com/hbl/yuliao/utils/DataUtils.java @@ -163,11 +163,13 @@ public class DataUtils { // return country; // } // } - if(ApiService.AREA_CODE.equals("+86")){ - return new CountryBean("+86", context.getString(R.string.zhongguo_txt)); - }else{ - return new CountryBean("+886",context.getString(R.string.taiwan_txt)); - } +// if(ApiService.AREA_CODE.equals("+86")){ +// return new CountryBean("+86", context.getString(R.string.zhongguo_txt)); +// }else{ +// return new CountryBean("+886",context.getString(R.string.taiwan_txt)); +// } + return new CountryBean("+60", context.getString(R.string.mlxy_txt)); + } diff --git a/app/src/main/java/com/hbl/yuliao/utils/UpdateUtils.java b/app/src/main/java/com/hbl/yuliao/utils/UpdateUtils.java new file mode 100644 index 0000000..a94c2c5 --- /dev/null +++ b/app/src/main/java/com/hbl/yuliao/utils/UpdateUtils.java @@ -0,0 +1,285 @@ +package com.hbl.yuliao.utils; + +import android.content.Context; +import android.os.Handler; + +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; +import com.hbl.yuliao.IMUIKitConfig; +import com.hbl.yuliao.model.AvaterBean; +import com.hbl.yuliao.model.StsCredentialsBean; +import com.hbl.yuliao.network.Api; +import com.hbl.yuliao.network.BaseObserver; +import com.hbl.yuliao.network.Result; +import com.luck.picture.lib.entity.LocalMedia; +import com.qiniu.android.storage.Configuration; +import com.qiniu.android.storage.UploadManager; +import com.qiniu.android.storage.UploadOptions; + +import java.io.File; +import java.util.List; +import java.util.UUID; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; + +/** + * ********************** + * + * @Author bug machine + * 创建时间: 2025/9/22 13:48 + * 用途 + * ********************** + */ +public class UpdateUtils { + public UpdateUtils() { + } + + public StsCredentialsBean stsCredentialsBean; + public String stsCredentialsBean1; + + + + public interface OnToActionListener { + void toSumbitSuccess(String path); + + void toSumbitFails(String message); + + } + OnToActionListener onToActionListener; + /** + * 上传工具类 + * @param context + * @param file 文件 + * @param pathName 路径目录 + * @param onToActionListener 回调 + * @param handler 切换线程 目前只有 Direction.TYPE_ALIOSS 上传需要 + */ + public void toShangchuanAli(Context context, File file, String pathName, OnToActionListener onToActionListener, Handler... handler) { + this.onToActionListener = onToActionListener; + if(IMUIKitConfig.UPLOAD_TYPE == 0){ + updateImage(file,onToActionListener); + }else if(IMUIKitConfig.UPLOAD_TYPE == 1){ + getStsCredentialsByAli(context,file,pathName, onToActionListener,handler[0]); + }else{ + getStsCredentialsByQiNiu(file,pathName, onToActionListener); + } + + } + + /** + * 上传图片多张后续 + * @param context + * @param file + * @param pathName + * @param handler + */ + public void toShangchuanAliMore(Context context, File file, String pathName, Handler... handler) { + + if(IMUIKitConfig.UPLOAD_TYPE == 0){ + updateImage(file,onToActionListener); + }else if(IMUIKitConfig.UPLOAD_TYPE == 1){ + toAliYunOss(context,file,pathName,onToActionListener,handler[0]); + }else{ + toQIiNiuYunOss(file,pathName,onToActionListener); + } + + } + /** + * 获取七牛云的 授权上传鉴权 + * @param file + * @param pathName + * @param onToActionListener + */ + private void getStsCredentialsByQiNiu( File file, String pathName, OnToActionListener onToActionListener) { + Api.getInstance().stsCredentials1() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result feedbackResp) { + stsCredentialsBean1 = feedbackResp.data; + toQIiNiuYunOss(file,pathName,onToActionListener); + } + + @Override + public void onError(int code, String msg) { + onToActionListener.toSumbitFails(msg); + } + }); + } + + /** + * 获取alioss的上传授权 + * @param context + * @param file + * @param pathName + * @param onToActionListener + * @param handler + */ + private void getStsCredentialsByAli(Context context,File file,String pathName, OnToActionListener onToActionListener, Handler handler) { + Api.getInstance().stsCredentials() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result feedbackResp) { + stsCredentialsBean = feedbackResp.data; + toAliYunOss(context,file,pathName,onToActionListener,handler); + } + + @Override + public void onError(int code, String msg) { + onToActionListener.toSumbitFails(msg); + } + }); + } + + /** + * 去上传多文件 + * @param file + * @param pathName + * @param onToActionListener + */ + public void toQIiNiuYunOss(File file,String pathName, OnToActionListener onToActionListener) { + String updatePathPicHead = pathName; + UploadOptions options = new UploadOptions(null, null, true, + (key, percent) -> { + }, () -> { + return false; + }); + Configuration configuration = new Configuration.Builder() + .build(); + UploadManager uploadManager = new UploadManager(configuration); + + String fileName = UUID.randomUUID().toString() + "_" + file.getName(); +// LogUtils.i("结果是啥开始:" + stsCredentialsBean + ";;" + file.getAbsolutePath()); + String files = "media/" + updatePathPicHead + "/" + fileName; + uploadManager.put(file, files, stsCredentialsBean1, (key, info, response) -> { + if (info != null && info.isOK()) { + onToActionListener.toSumbitSuccess(IMUIKitConfig.OSS_URL+files); + } else { + LogUtils.i("结果是啥失败:" + GsonUtils.beanToJSONString(info)); + onToActionListener.toSumbitFails(GsonUtils.beanToJSONString(info)); + } + }, options); + } + + + + public void toAliYunOss(Context context,File file,String pathName,OnToActionListener onToActionListener,Handler handler) { + String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; + String accessKeyId = stsCredentialsBean.getAccessKeyId(); + String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); + String securityToken = stsCredentialsBean.getSecurityToken(); + String bucketName = IMUIKitConfig.bucketName; + + OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); + OSSClient oss = new OSSClient(context.getApplicationContext(), endpoint, credentialProvider); + toUpdateOss(bucketName, oss, file,pathName,onToActionListener,handler); + + } + + + + // + private void toUpdateOss(String bucketName, OSSClient oss, File file ,String pathName,OnToActionListener onToActionListener,Handler handler) { + LogUtils.i("1111111111111111111"); + String updatePathPicHead = pathName; + + LogUtils.i("22222222222222222"); + + String fileName = UUID.randomUUID().toString() + "_" + file.getName(); + LogUtils.i("文件地址是啥:" + file.getAbsolutePath()); + LogUtils.i("文件地址是啥1:" + file.getPath()); + + PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + updatePathPicHead + "/" + fileName, file.getAbsolutePath()); + + put.setProgressCallback((request, currentSize, totalSize) -> { + LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); + + }); + LogUtils.i("55555555555555"); + + oss.asyncPutObject(put, new OSSCompletedCallback<>() { + @Override + public void onSuccess(PutObjectRequest request, PutObjectResult result) { + LogUtils.i("PutObject", "UploadSuccess"); + LogUtils.i("ETag", result.getETag()); + LogUtils.i("RequestId", result.getRequestId()); + LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); +// onToActionListener.toSumbitSuccess(avaterBean.getAvatarFilename()); +// onToActionListener.toSumbitSuccess( IMUIKitConfig.OSS_URL+"media/" + updatePathPicHead + "/" + fileName); + if(handler!=null) { + handler.post(() -> { + onToActionListener.toSumbitSuccess(IMUIKitConfig.OSS_URL + "media/" + updatePathPicHead + "/" + fileName); + + }); + } + } + + @Override + public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { +// dimessLoadingDialog(); + LogUtils.i("ErrorCode", clientExcepion.getMessage()); + if(handler!=null) { + handler.post(() -> { + onToActionListener.toSumbitFails(clientExcepion.getMessage()); + }); + } + // 请求异常。 + if (clientExcepion != null) { + // 本地异常,如网络异常等。 + clientExcepion.printStackTrace(); + } + if (serviceException != null) { + // 服务异常。 + LogUtils.i("ErrorCode", serviceException.getErrorCode()); + LogUtils.i("RequestId", serviceException.getRequestId()); + LogUtils.i("HostId", serviceException.getHostId()); + LogUtils.i("RawMessage", serviceException.getRawMessage()); + } + } + }); +// } + } + + + + + AvaterBean avaterBean = null; + + private void updateImage(File file,OnToActionListener onToActionListener) { + RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); + String fileName = UUID.randomUUID().toString() + "_" + file.getName(); + + MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("file",fileName, imageBody); + Api.getInstance().uploadUserAvatar(imageBodyPart) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver>() { + + @Override + public void onSuccess(Result feedbackResp) { + avaterBean = feedbackResp.data; + onToActionListener.toSumbitSuccess(avaterBean.getAvatarFilename()); + } + + @Override + public void onError(int code, String msg) { + onToActionListener.toSumbitFails(msg); + } + }); + } + + +} diff --git a/app/src/main/java/com/hbl/yuliao/voom/CircleFragment.java b/app/src/main/java/com/hbl/yuliao/voom/CircleFragment.java index 50ce35e..17c7e3d 100644 --- a/app/src/main/java/com/hbl/yuliao/voom/CircleFragment.java +++ b/app/src/main/java/com/hbl/yuliao/voom/CircleFragment.java @@ -57,7 +57,6 @@ import com.hbl.yuliao.utils.Constant; import com.hbl.yuliao.utils.DataUtils; import com.hbl.yuliao.utils.GsonUtils; import com.hbl.yuliao.utils.LogUtils; -import com.hbl.yuliao.utils.ScreenUtils; import com.hbl.yuliao.widget.CircleImageView; //import com.ethanhua.skeleton.Skeleton; //import com.ethanhua.skeleton.SkeletonScreen; @@ -65,6 +64,7 @@ import com.netease.yunxin.kit.alog.ALog; import com.netease.yunxin.kit.chatkit.repo.ContactRepo; import com.netease.yunxin.kit.chatkit.ui.common.RxBus; import com.netease.yunxin.kit.common.ui.fragments.BaseFragment; +import com.netease.yunxin.kit.common.utils.ScreenUtils; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.netease.yunxin.kit.corekit.im.model.FriendInfo; @@ -240,6 +240,9 @@ public class CircleFragment extends BaseFragment { .skipMemoryCache(false) .diskCacheStrategy(DiskCacheStrategy.RESOURCE); linearLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); + if(ScreenUtils.getDisplayWidth()>1800){ + linearLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL); + } linearLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE); diff --git a/app/src/main/java/com/hbl/yuliao/voom/PushActivity.java b/app/src/main/java/com/hbl/yuliao/voom/PushActivity.java index c47a441..806b3d4 100644 --- a/app/src/main/java/com/hbl/yuliao/voom/PushActivity.java +++ b/app/src/main/java/com/hbl/yuliao/voom/PushActivity.java @@ -12,6 +12,7 @@ import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -28,14 +29,6 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.ItemTouchHelper; -//import com.alibaba.sdk.android.oss.ClientException; -//import com.alibaba.sdk.android.oss.OSSClient; -//import com.alibaba.sdk.android.oss.ServiceException; -//import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; -//import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; -//import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; -//import com.alibaba.sdk.android.oss.model.PutObjectRequest; -//import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.hbl.yuliao.IMApplication; import com.hbl.yuliao.IMUIKitConfig; @@ -44,15 +37,14 @@ import com.hbl.yuliao.adapter.CommonAdapter; import com.hbl.yuliao.adapter.ViewHolder; import com.hbl.yuliao.databinding.ActivityPushBinding; import com.hbl.yuliao.dialog.SelectPushTypeDialog; -import com.hbl.yuliao.model.StsCredentialsBean; import com.hbl.yuliao.network.Api; import com.hbl.yuliao.network.BaseObserver; import com.hbl.yuliao.network.Result; import com.hbl.yuliao.utils.Constant; -import com.hbl.yuliao.utils.DataUtils; import com.hbl.yuliao.utils.GsonUtils; import com.hbl.yuliao.utils.ItemDragTouchHelperCallback; import com.hbl.yuliao.utils.LogUtils; +import com.hbl.yuliao.utils.UpdateUtils; import com.hbl.yuliao.widget.CircleImageView; import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.config.SelectMimeType; @@ -78,20 +70,11 @@ import com.netease.yunxin.kit.common.utils.PermissionUtils; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.netease.yunxin.kit.corekit.im.utils.RouterConstant; import com.netease.yunxin.kit.corekit.route.XKitRouter; -import com.qiniu.android.storage.Configuration; -import com.qiniu.android.storage.UploadManager; -import com.qiniu.android.storage.UploadOptions; - -import org.json.JSONException; import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.UUID; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -120,7 +103,7 @@ public class PushActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setStatusBarColor(getResources().getColor(R.color.color_white)); - getWindow().setNavigationBarColor(getResources().getColor(R.color.color_white)); + getWindow().setNavigationBarColor(getResources().getColor(R.color.color_eefof7)); ALog.d(Constant.PROJECT_TAG, TAG, "onCreateView"); IMApplication.setColdStart(true); @@ -236,18 +219,10 @@ public class PushActivity extends BaseActivity { }); activityWelcomeBinding.backIv.setOnClickListener(v -> onBackPressed()); - activityWelcomeBinding.userTypeTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SelectPushTypeDialog selectPushTypeDialog = new SelectPushTypeDialog(PushActivity.this, pushType); - selectPushTypeDialog.setOnToVipListener(new SelectPushTypeDialog.OnToTypeListener() { - @Override - public void toType(int type) { - changTopType(type); - } - }); - selectPushTypeDialog.show(); - } + activityWelcomeBinding.userTypeLy.setOnClickListener(v -> { + SelectPushTypeDialog selectPushTypeDialog = new SelectPushTypeDialog(PushActivity.this, pushType); + selectPushTypeDialog.setOnToVipListener(type -> changTopType(type)); + selectPushTypeDialog.show(); }); activityWelcomeBinding.pushBt.setOnClickListener(new View.OnClickListener() { @Override @@ -275,231 +250,66 @@ public class PushActivity extends BaseActivity { if (isPush) { return; } - + hideSoftInput(PushActivity.this); isPush = true; toShangchuanAli(); } + /** + * 隐藏软键盘 + */ + public void hideSoftInput(Activity activity) { + InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); + if (getCurrentFocus() != null && null != imm) { + imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); + } - StsCredentialsBean stsCredentialsBean; - String stsCredentialsBean1; - - private void toShangchuanAli() { - showLoadingDialog(); -// Api.getInstance().stsCredentials() -// .subscribeOn(Schedulers.io()) -// .observeOn(AndroidSchedulers.mainThread()) -// .subscribe(new BaseObserver>() { -// @Override -// public void onSuccess(Result feedbackResp) { -// stsCredentialsBean = feedbackResp.data; -// toAliYunOss(); -// } -// -// @Override -// public void onError(int code, String msg) { -// dimessLoadingDialog(); -// } -// }); - - - Api.getInstance().stsCredentials1() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean1 = feedbackResp.data; -// toAliYunOss(file, isHead); - toUpdateOssNew(0); - - } - - @Override - public void onError(int code, String msg) { - dismissLoading(); - } - }); } -// private void toAliYunOss() { -// String endpoint = "https://oss-cn-hongkong.aliyuncs.com"; -// String accessKeyId = stsCredentialsBean.getAccessKeyId(); -// String accessKeySecret = stsCredentialsBean.getAccessKeySecret(); -// String securityToken = stsCredentialsBean.getSecurityToken(); -// String bucketName = IMUIKitConfig.bucketName; -// -// OSSCredentialProvider credentialProvider = new OSSStsTokenCredentialProvider(accessKeyId, accessKeySecret, securityToken); -// OSSClient oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider); -// toUpdateOss(bucketName, 0, oss); -// -// } - private void toUpdateOssNew( int i) { - String updatePathPic = "pic_input"; - String updatePathVideo = "video_input"; - - UploadOptions options = new UploadOptions(null, null, true, - (key, percent) -> { - LogUtils.i("结果是啥进度:" + percent); - }, () -> { - LogUtils.i("结果是啥进度112222222111:"); - return false; - }); - Configuration configuration = new Configuration.Builder() - .build(); - UploadManager uploadManager = new UploadManager(configuration); - - String data = DataUtils.getCurrentTimeTypeNoline(System.currentTimeMillis()); - - if (i < uris.size()) { - File file = new File(localMedias.get(i).getRealPath()); - String fileName = UUID.randomUUID().toString() + "_" + localMedias.get(i).getFileName(); - LogUtils.i("结果是啥开始:" + stsCredentialsBean1 + ";;" + file.getAbsolutePath()); - String files = "media/" + updatePathPic + "/" + data + "/" + fileName; - if (localMedias.get(0).getMimeType().contains("video")) { - files = "media/" + updatePathVideo + "/" + data + "/" + fileName; - } - byte[] sss = convertFileToBytes(file); - LogUtils.i("结果是啥开始:" + sss); - - String finalFiles = files; - uploadManager.put(sss, files, stsCredentialsBean1, (key, info, response) -> { -// LogUtils.i("结果是啥2:" + GsonUtils.beanToJSONString(info)); - LogUtils.i("结果是啥2:" + GsonUtils.beanToJSONString(response)); - dismissLoading(); - if (info != null && info.isOK()) { - // 上传成功 -// outputStrings.add(IMUIKitConfig.OSS_URL + files); - //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg - - if (localMedias.get(0).getMimeType().contains("video")) { - outputStrings.add(IMUIKitConfig.OSS_URL + finalFiles); - } else { - outputStrings.add(IMUIKitConfig.OSS_URL + finalFiles); - } - //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg - if (i == uris.size() - 1) { + UpdateUtils updateUtils; + int updateIndex = 0; + String pathName = "pic_input"; + private void toShangchuanAli() { + showLoadingDialog("正在发布动态…"); + updateUtils = new UpdateUtils(); + if (localMedias.get(0).getMimeType().contains("video")) { + pathName = "video_input"; + } + updateUtils.toShangchuanAli(PushActivity.this,new File(localMedias.get(updateIndex).getRealPath()), pathName,new UpdateUtils.OnToActionListener() { + @Override + public void toSumbitSuccess(String path) { + if (localMedias.get(0).getMimeType().contains("video")) { + outputStrings.add(path); + toPush(); + } else { + outputStrings.add(path); + if (updateIndex == uris.size() - 1) { toPush(); } else { - toUpdateOssNew( i + 1); + updateIndex+=1; + updateUtils.toShangchuanAliMore(PushActivity.this,new File(localMedias.get(updateIndex).getRealPath()), pathName,handler); } - - } else { - // 上传失败 - LogUtils.i("结果是啥失败:" + GsonUtils.beanToJSONString(info)); } - }, options); - } - } + } - public static byte[] convertFileToBytes(File file) { - // 使用ByteArrayOutputStream来收集字节数据 - FileInputStream fis = null; - try { - fis = new FileInputStream(file); - byte[] bytesArray = new byte[(int) file.length()]; - fis.read(bytesArray); - fis.close(); - return bytesArray; - - } catch (FileNotFoundException e) { -// throw new RuntimeException(e); - return null; - } catch (IOException e) { -// throw new RuntimeException(e); - return null; - - } + @Override + public void toSumbitFails(String message) { + dimessLoadingDialog(); + ToastX.showShortToast(message); + } + },handler); } -// -// -// // -// private void toUpdateOss(String bucketName, int i, OSSClient oss) { -// String updatePathPic = "pic_input"; -// String updatePathVideo = "video_input"; -//// String outputPathPic = "pic_output"; -//// String outputPathVideo = "video_output"; -// String outputPathPic = "pic_input"; -// String outputPathVideo = "video_input"; -//// Calendar calendar= Calendar.getInstance(); -//// String year = calendar.get(Calendar.YEAR)+""; -//// String month = (calendar.get(Calendar.MONTH)+1)<10?"0"+(calendar.get(Calendar.MONTH)+1):(calendar.get(Calendar.MONTH)+1)+""; -//// String d = calendar.get(Calendar.DATE)<10?"0"+calendar.get(Calendar.DAY_OF_MONTH):calendar.get(Calendar.DAY_OF_MONTH)+""; -// -// String data = DataUtils.getCurrentTimeTypeNoline(System.currentTimeMillis()); -// if (i < uris.size()) { -// -//// File file = new File(uriStrings.get(i)); -// String fileName = System.currentTimeMillis() + "_" + localMedias.get(i).getFileName(); -// LogUtils.i("上传文件是啥:" + GsonUtils.beanToJSONString(localMedias.get(i))); -// LogUtils.i("上传文件是啥:" + fileName); -// -// // 构造上传请求。 -// PutObjectRequest put = new PutObjectRequest(bucketName, "media/" + updatePathPic + "/" + data + "/" + fileName, localMedias.get(i).getRealPath()); -// -// if (localMedias.get(0).getMimeType().contains("video")) { -// put = new PutObjectRequest(bucketName, "media/" + updatePathVideo + "/" + data + "/" + fileName, localMedias.get(i).getRealPath()); -// } -// -// put.setProgressCallback((request, currentSize, totalSize) -> { -// LogUtils.i("PutObject", "currentSize: " + currentSize + " totalSize: " + totalSize); -//// if(isVideo){ -//// showLoadingDialog(("正在上传"+(currentSize*100)/totalSize)+"%"); -//// } -// }); -// -// //OSSAsyncTask task = -// oss.asyncPutObject(put, new OSSCompletedCallback<>() { -// @Override -// public void onSuccess(PutObjectRequest request, PutObjectResult result) { -// LogUtils.i("PutObject", "UploadSuccess"); -// LogUtils.i("ETag", result.getETag()); -// LogUtils.i("RequestId", result.getRequestId()); -// LogUtils.i("获取到的数据:" + GsonUtils.beanToJSONString(result)); -// if (localMedias.get(0).getMimeType().contains("video")) { -// outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + outputPathVideo + "/" + data + "/" + fileName); -// } else { -// outputStrings.add(IMUIKitConfig.OSS_URL + "media/" + outputPathPic + "/" + data + "/" + fileName); -// } -// //https://shenqi777.oss-cn-hongkong.aliyuncs.com/qtalk/pic_output/20230914/null_false53.jpg -// if (i == uris.size() - 1) { -// toPush(); -// } else { -// toUpdateOss(bucketName, i + 1, oss); -// } -// } -// -// @Override -// public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) { -// dimessLoadingDialog(); -// LogUtils.i("ErrorCode", clientExcepion.getMessage()); -// -// // 请求异常。 -// if (clientExcepion != null) { -// // 本地异常,如网络异常等。 -// clientExcepion.printStackTrace(); -// } -// if (serviceException != null) { -// // 服务异常。 -// LogUtils.i("ErrorCode", serviceException.getErrorCode()); -// LogUtils.i("RequestId", serviceException.getRequestId()); -// LogUtils.i("HostId", serviceException.getHostId()); -// LogUtils.i("RawMessage", serviceException.getRawMessage()); -// } -// } -// }); -// } -// } + + + public Handler handler = new Handler(); + private void toPush() { LogUtils.i("上传的数据:" + GsonUtils.beanToJSONString(outputStrings)); -// for (int i = 0;i< outputStrings.size();i++) { -// LogUtils.i("上传的数据:" + "https://shenqi777.oss-cn-hongkong.aliyuncs.com/" + outputStrings.get(i)); -// } List map = new ArrayList<>(); @@ -804,15 +614,15 @@ public class PushActivity extends BaseActivity { private void changeRight(boolean b) { if (b) { - activityWelcomeBinding.pushBt.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12); // 12sp + activityWelcomeBinding.pushBt.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); // 12sp activityWelcomeBinding.pushBt.setTextColor(getResources().getColor(R.color.color_white)); activityWelcomeBinding.pushBt.setVisibility(View.VISIBLE); - activityWelcomeBinding.pushBt.setBackgroundResource(R.drawable.button_true_bg); + activityWelcomeBinding.pushBt.setBackgroundResource(R.drawable.button_true_bg_yl); } else { - activityWelcomeBinding.pushBt.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12); // 12sp + activityWelcomeBinding.pushBt.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); // 12sp activityWelcomeBinding.pushBt.setTextColor(getResources().getColor(R.color.color_999999)); activityWelcomeBinding.pushBt.setVisibility(View.VISIBLE); - activityWelcomeBinding.pushBt.setBackgroundResource(R.drawable.button_false_bg); + activityWelcomeBinding.pushBt.setBackgroundResource(R.drawable.button_false_bg_yl); } } @@ -825,6 +635,7 @@ public class PushActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/voom/VoomFragment.java b/app/src/main/java/com/hbl/yuliao/voom/VoomFragment.java index ec5a202..0b3079c 100644 --- a/app/src/main/java/com/hbl/yuliao/voom/VoomFragment.java +++ b/app/src/main/java/com/hbl/yuliao/voom/VoomFragment.java @@ -66,10 +66,10 @@ public class VoomFragment extends BaseFragment { private void initShow() { - titles = new ArrayList<>(3); + titles = new ArrayList<>(2); titles.add(getString(R.string.tuijian_txt)); titles.add(getString(R.string.haoyou_txt)); - titles.add(getString(R.string.fujin_txt)); +// titles.add(getString(R.string.fujin_txt)); listFragment = new ArrayList<>(); listFragment.add(discoverFragment=CircleFragment.newInstance(0)); diff --git a/app/src/main/java/com/hbl/yuliao/voom/comm/CircleFragment1.java b/app/src/main/java/com/hbl/yuliao/voom/comm/CircleFragment1.java index 4810dc8..8f339f5 100644 --- a/app/src/main/java/com/hbl/yuliao/voom/comm/CircleFragment1.java +++ b/app/src/main/java/com/hbl/yuliao/voom/comm/CircleFragment1.java @@ -55,7 +55,6 @@ import com.hbl.yuliao.utils.Constant; import com.hbl.yuliao.utils.DataUtils; import com.hbl.yuliao.utils.GsonUtils; import com.hbl.yuliao.utils.LogUtils; -import com.hbl.yuliao.utils.ScreenUtils; import com.hbl.yuliao.voom.TiktokActivity; import com.hbl.yuliao.widget.CircleImageView; //import com.ethanhua.skeleton.Skeleton; @@ -64,6 +63,7 @@ import com.netease.yunxin.kit.alog.ALog; import com.netease.yunxin.kit.chatkit.repo.ContactRepo; import com.netease.yunxin.kit.chatkit.ui.common.RxBus; import com.netease.yunxin.kit.common.ui.fragments.BaseFragment; +import com.netease.yunxin.kit.common.utils.ScreenUtils; import com.netease.yunxin.kit.corekit.im.IMKitClient; import com.netease.yunxin.kit.corekit.im.model.FriendInfo; @@ -255,6 +255,9 @@ public class CircleFragment1 extends BaseFragment { .skipMemoryCache(false) .diskCacheStrategy(DiskCacheStrategy.RESOURCE); linearLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); + if(ScreenUtils.getDisplayWidth()>1800){ + linearLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL); + } linearLayoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE); // linearLayoutManager.setReverseLayout(true); //防止item 交换位置 diff --git a/app/src/main/java/com/hbl/yuliao/wallet/AddOrChangeUSDTActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/AddOrChangeUSDTActivity.java index d5a6b6b..601ccc3 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/AddOrChangeUSDTActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/AddOrChangeUSDTActivity.java @@ -5,6 +5,7 @@ import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.text.TextUtils; import android.view.View; @@ -13,6 +14,14 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.hbl.yuliao.IMUIKitConfig; import com.hbl.yuliao.R; @@ -20,14 +29,18 @@ import com.hbl.yuliao.databinding.ActivityBindUsdtBinding; import com.hbl.yuliao.databinding.ActivityBindWechatAlipayBinding; import com.hbl.yuliao.dialog.ActionConfirmDialog; import com.hbl.yuliao.main.mine.ChangeAccoutActionActivity; +import com.hbl.yuliao.main.mine.UserInfoActivity; +import com.hbl.yuliao.model.AvaterBean; import com.hbl.yuliao.model.BindBean; import com.hbl.yuliao.model.PayInfoWxBean; +import com.hbl.yuliao.model.StsCredentialsBean; import com.hbl.yuliao.model.WalletBean; import com.hbl.yuliao.network.Api; import com.hbl.yuliao.network.BaseObserver; import com.hbl.yuliao.network.Result; import com.hbl.yuliao.utils.GsonUtils; import com.hbl.yuliao.utils.LogUtils; +import com.hbl.yuliao.utils.UpdateUtils; import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.config.SelectMimeType; import com.luck.picture.lib.entity.LocalMedia; @@ -59,6 +72,9 @@ import java.util.UUID; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; public class AddOrChangeUSDTActivity extends BaseActivity { ActivityBindUsdtBinding viewBinding; @@ -103,18 +119,10 @@ public class AddOrChangeUSDTActivity extends BaseActivity { getWallet(); bindInfo(); authPayInfo(); - viewBinding.editIv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - viewBinding.editIv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - viewBinding.contactListActivityTitleBar.setTitle("修改钱包地址"); - viewBinding.changeLy.setVisibility(View.VISIBLE); - viewBinding.needDataLy.setVisibility(View.GONE); - } - }); - } + viewBinding.editIv.setOnClickListener(v -> { + viewBinding.contactListActivityTitleBar.setTitle("修改钱包地址"); + viewBinding.changeLy.setVisibility(View.VISIBLE); + viewBinding.needDataLy.setVisibility(View.GONE); }); } @@ -145,9 +153,10 @@ public class AddOrChangeUSDTActivity extends BaseActivity { } }); } - + PayInfoWxBean payInfoWxBean; private void showType(PayInfoWxBean feedbackResp) { if(feedbackResp!=null&&!TextUtils.isEmpty(feedbackResp.getUsdtAddress())){ + payInfoWxBean = feedbackResp; viewBinding.needDataLy.setVisibility(View.VISIBLE); viewBinding.contactListActivityTitleBar.setTitle("我的USDT钱包地址"); viewBinding.addressTv.setText(""+feedbackResp.getUsdtAddress()); @@ -208,7 +217,7 @@ public class AddOrChangeUSDTActivity extends BaseActivity { .setMaxSelectNum(1) // .setMaxVideoSelectNum(9) .setSelectorUIStyle(selectorStyle) - .forResult(new OnResultCallbackListener() { + .forResult(new OnResultCallbackListener<>() { @Override public void onResult(ArrayList result) { for (int i = 0; i < result.size(); ++i) { @@ -231,7 +240,7 @@ public class AddOrChangeUSDTActivity extends BaseActivity { Api.getInstance().bindInfo(IMKitClient.account()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver>() { + .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result feedbackResp) { bindBean = feedbackResp.data; @@ -252,18 +261,21 @@ public class AddOrChangeUSDTActivity extends BaseActivity { viewBinding.imageIv.setOnClickListener(v -> choicePhoto()); - viewBinding.sumbitBt.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (TextUtils.isEmpty(viewBinding.nameEt.getText().toString().trim())) { - ToastX.showShortToast("请输入您的钱包地址"); - return; - } + viewBinding.sumbitBt.setOnClickListener(v -> { + if (TextUtils.isEmpty(viewBinding.nameEt.getText().toString().trim())) { + ToastX.showShortToast("请输入您的钱包地址"); + return; + } - if (imageFile == null) { + if (imageFile == null) { + if(payInfoWxBean==null||TextUtils.isEmpty(payInfoWxBean.getUsdtUrl())) { ToastX.showShortToast("上传钱包地址二维码"); return; } + } + if(imageFile==null){ + toPush(payInfoWxBean.getUsdtUrl()); + }else{ toShangchuanAli(imageFile); } }); @@ -292,49 +304,6 @@ public class AddOrChangeUSDTActivity extends BaseActivity { } - private void showDialogPay() { - - com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog actionDialog = new com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog(AddOrChangeUSDTActivity.this, - getString(com.netease.yunxin.kit.chatkit.ui.R.string.bind_phone_des_txt1), getString(com.netease.yunxin.kit.chatkit.ui.R.string.cancel_txt), getString(com.netease.yunxin.kit.chatkit.ui.R.string.to_sett_txt)); - actionDialog.setOnToActionListener(new com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog.OnToActionListener() { - @Override - public void toSumbit() { -// Intent intent = new Intent(getActivity(), ChangeAccoutActionActivity.class); -// intent.putExtra("type", 5); -// startActivity(intent); - Intent intent = new Intent(AddOrChangeUSDTActivity.this, SetPayPasswordActivity.class); - startActivity(intent); - } - - @Override - public void toCancel() { - - } - }); - actionDialog.show(); - } - - - private void showDialog() { - - ActionConfirmDialog actionDialog = new ActionConfirmDialog(AddOrChangeUSDTActivity.this, - getString(R.string.bind_phone_des_txt), getString(R.string.nobind_txt), getString(R.string.tobind_txt)); - actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { - @Override - public void toSumbit() { - Intent intent = new Intent(AddOrChangeUSDTActivity.this, ChangeAccoutActionActivity.class); - intent.putExtra("type", ChangeAccoutActionActivity.TYPE_BIND_PHONE); - startActivity(intent); - } - - @Override - public void toCancel() { - - } - }); - actionDialog.show(); - } - private void getWallet() { Api.getInstance().walletInfo(IMKitClient.account()) .subscribeOn(Schedulers.io()) @@ -384,88 +353,56 @@ public class AddOrChangeUSDTActivity extends BaseActivity { } - String stsCredentialsBean; - + UpdateUtils updateUtils; private void toShangchuanAli(File file) { showLoadingDialog("正在上传图片"); - Api.getInstance().stsCredentials1() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean = feedbackResp.data; -// toAliYunOss(file, isHead); - toQIiNiuYunOss(file); + updateUtils = new UpdateUtils(); + updateUtils.toShangchuanAli(AddOrChangeUSDTActivity.this,file, "usdt",new UpdateUtils.OnToActionListener() { + @Override + public void toSumbitSuccess(String path) { + dimessLoadingDialog(); + toPush(path); + } + + @Override + public void toSumbitFails(String message) { + dimessLoadingDialog(); + ToastX.showShortToast(message); + } + },handler); + + - } - @Override - public void onError(int code, String msg) { - dimessLoadingDialog(); - ToastX.showShortToast(msg); - } - }); } + + public static Handler handler = new Handler(); + + public LoadingDialog loadingDialog; public void showLoadingDialog() { -// if (loadingDialog == null) -// loadingDialog = new LoadingDialog(this); -// loadingDialog.show(); + if (loadingDialog == null) + loadingDialog = new LoadingDialog(this); + loadingDialog.show(); } public void showLoadingDialog(String msg) { -// if (loadingDialog == null) -// loadingDialog = new LoadingDialog(this); -// loadingDialog.setLoadingText(msg); -// loadingDialog.show(); + if (loadingDialog == null) + loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText(msg); + loadingDialog.show(); } public void dimessLoadingDialog() { -// if (loadingDialog != null) { -// loadingDialog.dismiss(); -// } + if (loadingDialog != null) { + loadingDialog.dismiss(); + } } - - private void toQIiNiuYunOss(File file) { - String updatePathPic = "usdt"; - UploadOptions options = new UploadOptions(null, null, true, - (key, percent) -> { - LogUtils.i("结果是啥进度:" + percent); - }, () -> { - return false; - }); - Configuration configuration = new Configuration.Builder() - .build(); - UploadManager uploadManager = new UploadManager(configuration); - - String fileName = UUID.randomUUID().toString() + "_" + file.getName(); - LogUtils.i("结果是啥开始:" + stsCredentialsBean + ";;" + file.getAbsolutePath()); - String files = "media/" + updatePathPic + "/" + fileName; - - uploadManager.put(file, files, stsCredentialsBean, (key, info, response) -> { - dimessLoadingDialog(); - if (info != null && info.isOK()) { - // 上传成功 - try { - toPush(IMUIKitConfig.OSS_URL + response.getString("key")); - } catch (JSONException e) { - LogUtils.i("结果是啥失败:" + e); - } - - - } else { - // 上传失败 - LogUtils.i("结果是啥失败:" + GsonUtils.beanToJSONString(info)); - } - }, options); - } - private void toPush(String key) { Map map = new HashMap<>(); map.put("usdtAddress", viewBinding.nameEt.getText().toString().trim()); diff --git a/app/src/main/java/com/hbl/yuliao/wallet/BindWeChatOrAliPayActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/BindWeChatOrAliPayActivity.java index 8c4b72f..89c6ecd 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/BindWeChatOrAliPayActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/BindWeChatOrAliPayActivity.java @@ -5,6 +5,7 @@ import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.text.TextUtils; import android.view.View; @@ -13,6 +14,14 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; +import com.alibaba.sdk.android.oss.ClientException; +import com.alibaba.sdk.android.oss.OSSClient; +import com.alibaba.sdk.android.oss.ServiceException; +import com.alibaba.sdk.android.oss.callback.OSSCompletedCallback; +import com.alibaba.sdk.android.oss.common.auth.OSSCredentialProvider; +import com.alibaba.sdk.android.oss.common.auth.OSSStsTokenCredentialProvider; +import com.alibaba.sdk.android.oss.model.PutObjectRequest; +import com.alibaba.sdk.android.oss.model.PutObjectResult; import com.bumptech.glide.Glide; import com.hbl.yuliao.IMUIKitConfig; import com.hbl.yuliao.R; @@ -20,13 +29,16 @@ import com.hbl.yuliao.databinding.ActivityBindWechatAlipayBinding; import com.hbl.yuliao.databinding.ActivityShimingBinding; import com.hbl.yuliao.dialog.ActionConfirmDialog; import com.hbl.yuliao.main.mine.ChangeAccoutActionActivity; +import com.hbl.yuliao.model.AvaterBean; import com.hbl.yuliao.model.BindBean; +import com.hbl.yuliao.model.StsCredentialsBean; import com.hbl.yuliao.model.WalletBean; import com.hbl.yuliao.network.Api; import com.hbl.yuliao.network.BaseObserver; import com.hbl.yuliao.network.Result; import com.hbl.yuliao.utils.GsonUtils; import com.hbl.yuliao.utils.LogUtils; +import com.hbl.yuliao.utils.UpdateUtils; import com.luck.picture.lib.basic.PictureSelector; import com.luck.picture.lib.config.SelectMimeType; import com.luck.picture.lib.entity.LocalMedia; @@ -64,6 +76,9 @@ import java.util.UUID; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; public class BindWeChatOrAliPayActivity extends BaseActivity { ActivityBindWechatAlipayBinding viewBinding; @@ -154,7 +169,7 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { .setMaxSelectNum(1) // .setMaxVideoSelectNum(9) .setSelectorUIStyle(selectorStyle) - .forResult(new OnResultCallbackListener() { + .forResult(new OnResultCallbackListener<>() { @Override public void onResult(ArrayList result) { for (int i = 0; i < result.size(); ++i) { @@ -177,7 +192,7 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { Api.getInstance().bindInfo(IMKitClient.account()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver>() { + .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result feedbackResp) { bindBean = feedbackResp.data; @@ -205,33 +220,30 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { viewBinding.imageIv.setOnClickListener(v -> choicePhoto()); - viewBinding.sumbitBt.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (TextUtils.isEmpty(viewBinding.nameEt.getText().toString().trim())) { - ToastX.showShortToast("请输入您的真实姓名"); - return; - } - - if (TextUtils.isEmpty(viewBinding.numberEt.getText().toString().trim())) { - if (isWeChat) { - ToastX.showShortToast("请输入您本人使用的微信账号"); - } else { - ToastX.showShortToast("请输入您本人使用的支付宝账号"); - } - return; - } - - if (imageFile == null) { - if (isWeChat) { - ToastX.showShortToast("请上传微信收款码"); - } else { - ToastX.showShortToast("请上传支付宝收款码"); - } - return; - } - toShangchuanAli(imageFile); + viewBinding.sumbitBt.setOnClickListener(v -> { + if (TextUtils.isEmpty(viewBinding.nameEt.getText().toString().trim())) { + ToastX.showShortToast("请输入您的真实姓名"); + return; } + + if (TextUtils.isEmpty(viewBinding.numberEt.getText().toString().trim())) { + if (isWeChat) { + ToastX.showShortToast("请输入您本人使用的微信账号"); + } else { + ToastX.showShortToast("请输入您本人使用的支付宝账号"); + } + return; + } + + if (imageFile == null) { + if (isWeChat) { + ToastX.showShortToast("请上传微信收款码"); + } else { + ToastX.showShortToast("请上传支付宝收款码"); + } + return; + } + toShangchuanAli(imageFile); }); } @@ -258,49 +270,6 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { } - private void showDialogPay() { - - com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog actionDialog = new com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog(BindWeChatOrAliPayActivity.this, - getString(com.netease.yunxin.kit.chatkit.ui.R.string.bind_phone_des_txt1), getString(com.netease.yunxin.kit.chatkit.ui.R.string.cancel_txt), getString(com.netease.yunxin.kit.chatkit.ui.R.string.to_sett_txt)); - actionDialog.setOnToActionListener(new com.netease.yunxin.kit.chatkit.ui.dialog.ActionConfirmDialog.OnToActionListener() { - @Override - public void toSumbit() { -// Intent intent = new Intent(getActivity(), ChangeAccoutActionActivity.class); -// intent.putExtra("type", 5); -// startActivity(intent); - Intent intent = new Intent(BindWeChatOrAliPayActivity.this, SetPayPasswordActivity.class); - startActivity(intent); - } - - @Override - public void toCancel() { - - } - }); - actionDialog.show(); - } - - - private void showDialog() { - - ActionConfirmDialog actionDialog = new ActionConfirmDialog(BindWeChatOrAliPayActivity.this, - getString(R.string.bind_phone_des_txt), getString(R.string.nobind_txt), getString(R.string.tobind_txt)); - actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() { - @Override - public void toSumbit() { - Intent intent = new Intent(BindWeChatOrAliPayActivity.this, ChangeAccoutActionActivity.class); - intent.putExtra("type", ChangeAccoutActionActivity.TYPE_BIND_PHONE); - startActivity(intent); - } - - @Override - public void toCancel() { - - } - }); - actionDialog.show(); - } - private void getWallet() { Api.getInstance().walletInfo(IMKitClient.account()) .subscribeOn(Schedulers.io()) @@ -326,9 +295,6 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { private void changeInfo() { if (walletBean != null) { -// viewBinding.jinbiYueTv.setText(AppUtils.getQian(walletBean.getGoldCoin())); -// viewBinding.yinbiYueTv.setText(AppUtils.getQian(walletBean.getSilverCoin())); - } } @@ -345,40 +311,37 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { Glide.with(BindWeChatOrAliPayActivity.this) .load(file.getAbsolutePath()) .into(viewBinding.imageIv); - -// toShangchuanAli(file); } - - String stsCredentialsBean; - + UpdateUtils updateUtils; private void toShangchuanAli(File file) { showLoadingDialog("正在上传图片"); - Api.getInstance().stsCredentials1() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new BaseObserver<>() { - @Override - public void onSuccess(Result feedbackResp) { - stsCredentialsBean = feedbackResp.data; -// toAliYunOss(file, isHead); - toQIiNiuYunOss(file); + updateUtils = new UpdateUtils(); + updateUtils.toShangchuanAli(BindWeChatOrAliPayActivity.this,file, isWeChat ? "wechat" : "alipay",new UpdateUtils.OnToActionListener() { + @Override + public void toSumbitSuccess(String path) { + dimessLoadingDialog(); + toPush(path); + } - } + @Override + public void toSumbitFails(String message) { + dimessLoadingDialog(); + ToastX.showShortToast(message); + } + },handler); - @Override - public void onError(int code, String msg) { - dimessLoadingDialog(); - ToastX.showShortToast(msg); - } - }); } + public static Handler handler = new Handler(); + public LoadingDialog loadingDialog; public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } @@ -397,41 +360,6 @@ public class BindWeChatOrAliPayActivity extends BaseActivity { } - - private void toQIiNiuYunOss(File file) { - String updatePathPic = isWeChat ? "wechat" : "alipay"; - UploadOptions options = new UploadOptions(null, null, true, - (key, percent) -> { - LogUtils.i("结果是啥进度:" + percent); - }, () -> { - return false; - }); - Configuration configuration = new Configuration.Builder() - .build(); - UploadManager uploadManager = new UploadManager(configuration); - - String fileName = UUID.randomUUID().toString() + "_" + file.getName(); - LogUtils.i("结果是啥开始:" + stsCredentialsBean + ";;" + file.getAbsolutePath()); - String files = "media/" + updatePathPic + "/" + fileName; - - uploadManager.put(file, files, stsCredentialsBean, (key, info, response) -> { - dimessLoadingDialog(); - if (info != null && info.isOK()) { - // 上传成功 - try { - toPush(IMUIKitConfig.OSS_URL + response.getString("key")); - } catch (JSONException e) { - LogUtils.i("结果是啥失败:" + e); - } - - - } else { - // 上传失败 - LogUtils.i("结果是啥失败:" + GsonUtils.beanToJSONString(info)); - } - }, options); - } - private void toPush(String key) { Map map = new HashMap<>(); if (isWeChat) { diff --git a/app/src/main/java/com/hbl/yuliao/wallet/MyWalletActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/MyWalletActivity.java index 8a48fa4..d87257b 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/MyWalletActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/MyWalletActivity.java @@ -307,7 +307,7 @@ public class MyWalletActivity extends BaseActivity { private void changeInfo() { // if (walletBean != null) { - viewBinding.jinbiYueTv.setText("¥ " + AppUtils.getQian(walletBean.getGoldCoin())); + viewBinding.jinbiYueTv.setText(" " + AppUtils.getQian(walletBean.getGoldCoin())); // viewBinding.yinbiYueTv.setText(AppUtils.getQian(walletBean.getSilverCoin())); // // } diff --git a/app/src/main/java/com/hbl/yuliao/wallet/SetPayPasswordActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/SetPayPasswordActivity.java index fcc5c6a..446a6eb 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/SetPayPasswordActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/SetPayPasswordActivity.java @@ -289,6 +289,8 @@ public class SetPayPasswordActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/wallet/SumbitUsdtActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/SumbitUsdtActivity.java index 9b5e6a8..3316729 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/SumbitUsdtActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/SumbitUsdtActivity.java @@ -71,6 +71,7 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @@ -88,7 +89,7 @@ public class SumbitUsdtActivity extends BaseActivity { List outputStrings = new ArrayList<>(); int number = 0; private SumbitUsdtActivityBinding viewBinding; - + long orderId = 0; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { // getWindow().setStatusBarColor(getResources().getColor(R.color.color_fcfcfc)); @@ -101,6 +102,7 @@ public class SumbitUsdtActivity extends BaseActivity { protected void initView() { number = getIntent().getIntExtra("number",0); + orderId = getIntent().getLongExtra("order_id",0); viewBinding.mainAboutTitleBar.getBackImageView().setOnClickListener(v -> finish()); viewBinding.numberTv.setText(number+""); initAdapter(); @@ -110,6 +112,12 @@ public class SumbitUsdtActivity extends BaseActivity { viewBinding.tijiaoTv.setOnClickListener(v -> { KeyboardUtil.hideSoftInput(SumbitUsdtActivity.this); + + if(TextUtils.isEmpty(viewBinding.beizhuEt.getText().toString().trim())){ + ToastX.showShortToast("交易hash不能为空"); + return; + } + if (localMedias == null || localMedias.size() == 0) { ToastX.showShortToast("请先上传充值凭证"); } else { @@ -188,7 +196,7 @@ public class SumbitUsdtActivity extends BaseActivity { // } // private void toUpdateOssNew( int i) { - String updatePathPic = "userAvatarFileName"; + String updatePathPic = "recharge"; UploadOptions options = new UploadOptions(null, null, true, (key, percent) -> { LogUtils.i("结果是啥进度:" + percent); @@ -230,24 +238,21 @@ public class SumbitUsdtActivity extends BaseActivity { private void sumbit() { - List map = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("rechargeAccountId",orderId); + map.put("amount",number); + map.put("remark",viewBinding.beizhuEt.getText().toString().trim()); + map.put("proofImages",outputStrings); - for (int i = 0; i < outputStrings.size(); i++) { - MultipartBody.Part imageBodyPart = MultipartBody.Part.createFormData("screenshot" + (i + 1), outputStrings.get(i)); - map.add(imageBodyPart); - } - - Api.getInstance().report(map) + Api.getInstance().rechargeOrder(map) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new BaseObserver() { @Override public void onSuccess(Result feedbackResp) { dimessLoadingDialog(); - if (feedbackResp.data != null) { - - - } + ToastX.showShortToast("充值申请提交成功"); + finish(); } @Override @@ -266,6 +271,8 @@ public class SumbitUsdtActivity extends BaseActivity { public void showLoadingDialog() { if (loadingDialog == null) loadingDialog = new LoadingDialog(this); + loadingDialog.setLoadingText("Loading…"); + loadingDialog.show(); } diff --git a/app/src/main/java/com/hbl/yuliao/wallet/TiXianActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/TiXianActivity.java index 54203f2..1fa062e 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/TiXianActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/TiXianActivity.java @@ -70,8 +70,6 @@ public class TiXianActivity extends BaseActivity { int defaultIndex = 0; //输入的金额 private boolean isFenqi = false; private int installmentNum; //分期數 - TiXianConfBean bankConfBean; - TiXianConfBean aliPayConfBean; TiXianConfBean tiXianConfBean; ArrayList bankBeans = new ArrayList<>(); @@ -87,17 +85,15 @@ public class TiXianActivity extends BaseActivity { viewBinding = ActivityTixianBinding.inflate(getLayoutInflater()); setContentView(viewBinding.getRoot()); initView(); - viewBinding.rbBank.setVisibility(View.GONE); - viewBinding.rbAlipay.setVisibility(View.GONE); getConf(); getWallet(); - getBankList(); - authPayInfo(); - +// getBankList(); + viewBinding.toBindBt.setOnClickListener(v -> startActivity(new Intent(TiXianActivity.this, AddOrChangeUSDTActivity.class))); viewBinding.allTxTv.setPaintFlags(viewBinding.allTxTv.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG); } + PayInfoWxBean payInfoWxBean; private void authPayInfo() { Api.getInstance().authPayInfo() .subscribeOn(Schedulers.io()) @@ -106,24 +102,22 @@ public class TiXianActivity extends BaseActivity { @Override public void onSuccess(Result feedbackResp) { if(feedbackResp!=null&&feedbackResp.data!=null){ - if(!TextUtils.isEmpty(feedbackResp.data.getAlipayNo())){ - BankBean bankBean = new BankBean(); - bankBean.setBankName("支付宝"); - bankBean.setCardholderName(feedbackResp.data.getAlipayRealName()); - bankBean.setNumber(feedbackResp.data.getAlipayNo()); - bankBean.setId(-1); - aliPayBeans.clear(); - aliPayBeans.add(bankBean); - - if(viewBinding.rbAlipay.isChecked()){ - showAlipay(); - } + payInfoWxBean = feedbackResp.data; + if(!TextUtils.isEmpty(feedbackResp.data.getUsdtAddress())){ + viewBinding.walletLy.setVisibility(View.VISIBLE); + viewBinding.toBindBt.setVisibility(View.GONE); + viewBinding.walletTv.setText(feedbackResp.data.getUsdtAddress()); + }else{ + viewBinding.walletLy.setVisibility(View.GONE); + viewBinding.toBindBt.setVisibility(View.VISIBLE); } } } @Override public void onError(int code, String msg) { + viewBinding.walletLy.setVisibility(View.GONE); + viewBinding.toBindBt.setVisibility(View.VISIBLE); } }); } @@ -131,6 +125,7 @@ public class TiXianActivity extends BaseActivity { @Override protected void onResume() { super.onResume(); + authPayInfo(); } @@ -159,7 +154,7 @@ public class TiXianActivity extends BaseActivity { shouxufei = tiXianConfBean.getBaseFee(); } double sizes = defaultIndex*1.0-shouxufei; - viewBinding.showYujiTv.setText(Html.fromHtml("预计到账金额:"+String.format("%.2f",sizes)+"元")); + viewBinding.showYujiTv.setText(Html.fromHtml("预计到账金额:"+String.format("%.2f",sizes)+"")); }else{ viewBinding.showYujiTv.setVisibility(View.INVISIBLE); @@ -172,32 +167,6 @@ public class TiXianActivity extends BaseActivity { public void afterTextChanged(Editable s) { } }); -// -// viewBinding.radioRg.setOnCheckedChangeListener(((group, checkedId) -> { -// RadioButton radioButton = (RadioButton) findViewById(checkedId); -// Toast.makeText(getApplicationContext(),"你选了:"+radioButton.getText(),Toast.LENGTH_LONG).show(); -// })); - - viewBinding.rbBank.setOnCheckedChangeListener((buttonView, isChecked) -> { - if(isChecked){ - showBank(); - - } - }); - viewBinding.rbAlipay.setOnCheckedChangeListener((buttonView, isChecked) -> { - if(isChecked){ - showAlipay(); - - } - }); - viewBinding.shoukuanBt.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if(tiXianConfBean!=null){ - showFloatType(tiXianConfBean); - } - } - }); viewBinding.allTxTv.setOnClickListener(v -> { if(walletBean!=null){ @@ -213,18 +182,18 @@ public class TiXianActivity extends BaseActivity { ToastX.showShortToast("请先输入提现金额"); return; } - if(walletBean==null){ - ToastX.showShortToast("获取钱包信息失败"); - return; - } +// if(walletBean==null){ +// ToastX.showShortToast("获取钱包信息失败"); +// return; +// } if(Integer.parseInt(viewBinding.editQueryEt.getText().toString().trim())>walletBean.getGoldCoin()/100){ - ToastX.showShortToast("最多可以提取"+(walletBean.getGoldCoin()/100)+"元"); - return; - } - if (bankBean == null){ - ToastX.showShortToast("请先选择提现渠道"); + ToastX.showShortToast("最多可以提取"+(walletBean.getGoldCoin()/100)+""); return; } +// if (bankBean == null){ +// ToastX.showShortToast("请先选择提现渠道"); +// return; +// } PayDialog payDialog = new PayDialog(TiXianActivity.this, "", false); payDialog.setOntoAlbumListener(new PayDialog.OnListItemClickListener() { @@ -247,10 +216,10 @@ public class TiXianActivity extends BaseActivity { private void toSumbit() { Map map = new HashMap(); map.put("amount", Integer.parseInt(viewBinding.editQueryEt.getText().toString().trim())*100); - map.put("withdrawConfId", tiXianConfBean.getId()); //信用卡支付 - if(tiXianConfBean.getType() ==1){ - map.put("bankCardId", bankBean.getId()); //信用卡支付 - } + map.put("withdrawConfId", 3); //信用卡支付 +// if(tiXianConfBean.getType() ==1){ + map.put("bankCardId", ""); //信用卡支付 +// } Api.getInstance().withdrawApply(map) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -260,8 +229,10 @@ public class TiXianActivity extends BaseActivity { // startToWeb(feedbackResp.data); //{"data":"https://z80.fenouliu.cc/pay/wechat/250428091839829744550037","code":1} //{"data":"https://t501.pay24t.com/form/payorderzz.html?id=db04e412-be26-4946-8f06-c00c582137df","code":1} + ToastX.showShortToast("提现申请发送成功!"); viewBinding.editQueryEt.setText(""); getWallet(); + finish(); } @Override @@ -271,86 +242,8 @@ public class TiXianActivity extends BaseActivity { }); } - private void showAlipay() { - tiXianConfBean = aliPayConfBean; - viewBinding.shoukuanBt.setHint("请选择支付宝账号"); - if(aliPayBeans!=null&&aliPayBeans.size()>0){ - viewBinding.shoukuanBt.setText(aliPayBeans.get(0).getCardholderName()+" "+aliPayBeans.get(0).getBankName()+" "+aliPayBeans.get(0).getNumber()); - bankBean =aliPayBeans.get(0); - }else{ - viewBinding.shoukuanBt.setText(""); - bankBean = null; - } - if(tiXianConfBean!=null) { - viewBinding.tipsTv.setText(Html.fromHtml("单笔提现手续费" + tiXianConfBean.getBaseFee() + "
提现费率" + tiXianConfBean.getFeeRate() + "%
预计到账时间2小时以内")); - } - } - - private void showBank() { - - tiXianConfBean = bankConfBean; - viewBinding.shoukuanBt.setHint("请选择银行卡"); - if(bankBeans!=null&&bankBeans.size()>0){ - viewBinding.shoukuanBt.setText(bankBeans.get(0).getCardholderName()+" "+bankBeans.get(0).getBankName()+" "+bankBeans.get(0).getNumber()); - bankBean =bankBeans.get(0); - }else{ - viewBinding.shoukuanBt.setText(""); - bankBean = null; - - } - if(tiXianConfBean!=null) { - viewBinding.tipsTv.setText(Html.fromHtml("单笔提现手续费" + tiXianConfBean.getBaseFee() + "
提现费率" + tiXianConfBean.getFeeRate() + "%
预计到账时间2小时以内")); - } - } - - private void showFloatType(TiXianConfBean tiXianConfBean) { - if(bankBean==null){ - if(tiXianConfBean.getType()==1){ - if(bankBeans!=null&&bankBeans.size()>0){ - bankBean = bankBeans.get(0); - } - }else{ - if(aliPayBeans!=null&&aliPayBeans.size()>0){ - bankBean = aliPayBeans.get(0); - } - } - } - - SelectBanksDialog sp = new SelectBanksDialog(TiXianActivity.this,tiXianConfBean,tiXianConfBean.getType()==1?bankBeans:aliPayBeans,bankBean); - sp.setOnToVipListener(new SelectBanksDialog.OnToTypeListener() { - @Override - public void toType(BankBean type) { - bankBean = type; - viewBinding.shoukuanBt.setText(bankBean.getCardholderName()+" "+bankBean.getBankName()+" "+bankBean.getNumber()); - - } - - @Override - public void toBind(TiXianConfBean tiXianConfBean) { - if(tiXianConfBean.getType()==1){ - startActivityForResult(new Intent(TiXianActivity.this, AddBankActivity.class),888); - }else{ - Intent i = new Intent(TiXianActivity.this, BindWeChatOrAliPayActivity.class); - i.putExtra("isWeChat",false); - startActivityForResult(i,777); - } - } - }); - sp.show(); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if(resultCode == RESULT_OK){ - if(requestCode == 888) { - getBankList(); - }else if(requestCode == 777){ - authPayInfo(); - } - } - } - +// +// private void getConf() { Map conf = new HashMap<>(); conf.put("token", DataUtils.getToken()); @@ -360,15 +253,15 @@ public class TiXianActivity extends BaseActivity { .subscribe(new BaseObserver<>() { @Override public void onSuccess(Result> feedbackResp) { - // {"data":[{"id":1,"channel":"支付宝","code":"902","type":2,"baseFee":2.00,"feeRate":8.00,"status":1}, - // {"id":2,"channel":"银行卡","code":"900","type":1,"baseFee":2.00,"feeRate":8.00,"status":1}],"code":1} + //{"data":[{"id":1,"channel":"支付宝","code":"902","type":2,"baseFee":2.00,"feeRate":8.00,"status":1,"maxWithdrawLimit":900,"minWithdrawLimit":100}, + // {"id":2,"channel":"银行卡","code":"900","type":1,"baseFee":2.00,"feeRate":8.00,"status":1,"maxWithdrawLimit":null,"minWithdrawLimit":null}, + // {"id":3,"channel":"USDT","code":"903","type":3,"baseFee":2.00,"feeRate":5.00,"status":1,"maxWithdrawLimit":null,"minWithdrawLimit":null}],"code":1} + if(feedbackResp!=null&&feedbackResp.data!=null&&feedbackResp.data.size()>0){ for (int i = 0;i() { - @Override - public void onSuccess(Result> feedbackResp) { - if(feedbackResp!=null&&feedbackResp.data.size()>0){ - bankBeans = (ArrayList) feedbackResp.data; - if(viewBinding.rbBank.isChecked()){ - showBank(); - } - } - - } - - @Override - public void onError(int code, String msg) { -// ToastX.showShortToast(msg); - } - }); - } +// +// private void getBankList() { +// +// Api.getInstance().getBanks() +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(new BaseObserver<>() { +// @Override +// public void onSuccess(Result> feedbackResp) { +// if(feedbackResp!=null&&feedbackResp.data.size()>0){ +// bankBeans = (ArrayList) feedbackResp.data; +// if(viewBinding.rbBank.isChecked()){ +// showBank(); +// } +// } +// +// } +// +// @Override +// public void onError(int code, String msg) { +//// ToastX.showShortToast(msg); +// } +// }); +// } private void changeBottomType() { - if(bankConfBean!=null){ - tiXianConfBean = bankConfBean; - viewBinding.rbBank.setVisibility(View.VISIBLE); - viewBinding.shoukuanBt.setHint("请选择银行卡"); - if(aliPayConfBean!=null){ - viewBinding.rbAlipay.setVisibility(View.VISIBLE); - } - - }else { - if(aliPayConfBean!=null){ - tiXianConfBean = aliPayConfBean; - viewBinding.rbAlipay.setVisibility(View.VISIBLE); - viewBinding.rbAlipay.setChecked(true); - viewBinding.shoukuanBt.setHint("请选择支付宝账号"); - } - } - viewBinding.tipsTv.setText(Html.fromHtml("单笔提现手续费"+tiXianConfBean.getBaseFee()+"
提现费率"+tiXianConfBean.getFeeRate()+"%
预计到账时间2小时以内")); + viewBinding.tipsTv.setText(Html.fromHtml("单笔提现手续费"+tiXianConfBean.getBaseFee()+"
提现费率"+tiXianConfBean.getFeeRate()+"%
预计到账时间2小时以内")); } @@ -496,7 +373,7 @@ public class TiXianActivity extends BaseActivity { private void changeInfo() { - viewBinding.dianshuTv.setText("¥ "+AppUtils.getQian(walletBean.getGoldCoin())); + viewBinding.dianshuTv.setText(" "+AppUtils.getQian(walletBean.getGoldCoin())); } @Override diff --git a/app/src/main/java/com/hbl/yuliao/wallet/TopUpActivity.java b/app/src/main/java/com/hbl/yuliao/wallet/TopUpActivity.java index d5d8dbb..e14130d 100644 --- a/app/src/main/java/com/hbl/yuliao/wallet/TopUpActivity.java +++ b/app/src/main/java/com/hbl/yuliao/wallet/TopUpActivity.java @@ -23,6 +23,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.blankj.utilcode.util.StringUtils; import com.blankj.utilcode.util.ToastUtils; +import com.bumptech.glide.Glide; import com.hbl.yuliao.IMUIKitConfig; import com.hbl.yuliao.R; import com.hbl.yuliao.adapter.CommonAdapter; @@ -35,6 +36,7 @@ import com.hbl.yuliao.model.BindBean; import com.hbl.yuliao.model.ChongZhiQuDaoBean; import com.hbl.yuliao.model.ExchangeConfBean; import com.hbl.yuliao.model.InstallmentBean; +import com.hbl.yuliao.model.RechargeAccountBean; import com.hbl.yuliao.model.SendOrderBean; import com.hbl.yuliao.model.SeqBean; import com.hbl.yuliao.model.SeqBeanTop; @@ -88,6 +90,26 @@ public class TopUpActivity extends BaseActivity { bindInfo(); // getConf(); getConf1(); + getTopInfo(); + } + RechargeAccountBean rechargeAccountBean; + private void getTopInfo() { + Api.getInstance().rechargeAccount() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + @Override + public void onSuccess(Result feedbackResp) { + rechargeAccountBean = feedbackResp.data; + viewBinding.usdtAddrTv.setText(rechargeAccountBean.getUsdtAddress()); + Glide.with(TopUpActivity.this).load(rechargeAccountBean.getQrCodeUrl()).error(R.color.white).placeholder(R.color.white).into(viewBinding.usdtAddrIv); + } + + @Override + public void onError(int code, String msg) { + ToastX.showShortToast(msg); + } + }); } private void getConf1() { @@ -183,10 +205,15 @@ public class TopUpActivity extends BaseActivity { ToastX.showShortToast("请先选择充值金额"); return; } - + if(rechargeAccountBean==null){ + ToastX.showShortToast("没有获取到充值账户"); + return; + } // launchTRC20Wallet(TopUpActivity.this,"TSkB56Bib6iihk6zsUDfwgyXBqvkDvFzBz",defaultIndex+""); Intent intent = new Intent(TopUpActivity.this,SumbitUsdtActivity.class); intent.putExtra("number",defaultIndex); + intent.putExtra("order_id",rechargeAccountBean.getId()); + startActivity(intent); } ); // AnimUtil.setAnimViews(viewBinding.topupTv); @@ -415,7 +442,7 @@ public class TopUpActivity extends BaseActivity { private void changeInfo() { - viewBinding.dianshuTv.setText("¥ "+AppUtils.getQian(walletBean.getGoldCoin())); + viewBinding.dianshuTv.setText(" "+AppUtils.getQian(walletBean.getGoldCoin())); } @Override diff --git a/app/src/main/java/com/hbl/yuliao/welcome/WelcomeActivity.java b/app/src/main/java/com/hbl/yuliao/welcome/WelcomeActivity.java index 7ac1e0d..fb8f053 100644 --- a/app/src/main/java/com/hbl/yuliao/welcome/WelcomeActivity.java +++ b/app/src/main/java/com/hbl/yuliao/welcome/WelcomeActivity.java @@ -38,6 +38,7 @@ import com.hbl.yuliao.login.LoginActivity; import com.hbl.yuliao.login.PhoneLoginActivity; import com.hbl.yuliao.login.RegisterActivity; import com.hbl.yuliao.main.mine.UserHeadEditActivity; +import com.hbl.yuliao.model.ConfigBean; import com.hbl.yuliao.model.LoginBean; import com.hbl.yuliao.model.NotifyCountBean; import com.hbl.yuliao.network.Api; @@ -121,6 +122,7 @@ public class WelcomeActivity extends BaseActivity { } else { activityWelcomeBinding.bottomLy.setVisibility(View.GONE); showIsLogin(true); + getConfig(); new Handler().postDelayed(() -> { showMainActivityAndFinish(); }, 3 * 1000); @@ -235,7 +237,7 @@ public class WelcomeActivity extends BaseActivity { // 访问路劲 String path = uri.getPath(); //获取指定参数值 - if (scheme.equals("timego") && host.equals("time_go_mm")) { + if (scheme.equals("yuliao") && host.equals("time_go_mm")) { if (path.contains("add_user")) { String goodsId = uri.getQueryParameter("userId"); LogUtils.i("111111111userId: " + goodsId); @@ -352,11 +354,11 @@ public class WelcomeActivity extends BaseActivity { loginBean.setCashFeeRate(feedbackResp.data.getCashFeeRate()); loginBean.setSilverFeeRate(feedbackResp.data.getSilverFeeRate()); loginBean.setMmSilverFeeRate(feedbackResp.data.getMmSilverFeeRate()); + loginBean.setUserAvatarFileName(feedbackResp.data.getUserAvatarFileName()); DataUtils.set(WelcomeActivity.this, "login_bean", GsonUtils.beanToJSONString(loginBean)); // IMKitClient.init(WelcomeActivity.this, null, IMApplication.getSdkOptions()); + getConfig(account,token); - - new Handler().postDelayed(() -> loginIM(account, token), 3000); // new Handler().postDelayed(() -> showMainActivityAndFinish(), 3000); // showMainActivityAndFinish() // new Handler().postDelayed(() -> { @@ -401,6 +403,85 @@ public class WelcomeActivity extends BaseActivity { } + /** + * 赠送开关配置 + */ + private void getConfig(String account,String token) { +// DataUtils.set(MainActivity.this, "mall_address", ""); + Api.getInstance().getConfig() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + + @Override + public void onSuccess(Result> feedbackResp) { + + if (feedbackResp.data != null && feedbackResp.data.size() > 0) { + for (ConfigBean configBean : feedbackResp.data) { + if (configBean.getId() == 1) { + DataUtils.set(WelcomeActivity.this, "transfer_cash", configBean.getVal().equals("1")); + } + if (configBean.getId() == 4) { + DataUtils.set(WelcomeActivity.this, "redpkg_score", configBean.getVal().equals("1")); + } + + if (configBean.getCode().equals("mall_address")) { + DataUtils.set(WelcomeActivity.this, "mall_address", configBean.getVal()); + } + } + + + } + new Handler().postDelayed(() -> loginIM(account, token), 2000); + + + } + + @Override + public void onError(int code, String msg) { + loginIM(account, token); + } + }); + } + /** + * 赠送开关配置 + */ + private void getConfig() { +// DataUtils.set(MainActivity.this, "mall_address", ""); + Api.getInstance().getConfig() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new BaseObserver<>() { + + @Override + public void onSuccess(Result> feedbackResp) { + + if (feedbackResp.data != null && feedbackResp.data.size() > 0) { + for (ConfigBean configBean : feedbackResp.data) { + if (configBean.getId() == 1) { + DataUtils.set(WelcomeActivity.this, "transfer_cash", configBean.getVal().equals("1")); + } + if (configBean.getId() == 4) { + DataUtils.set(WelcomeActivity.this, "redpkg_score", configBean.getVal().equals("1")); + } + + if (configBean.getCode().equals("mall_address")) { + DataUtils.set(WelcomeActivity.this, "mall_address", configBean.getVal()); + } + } + + + } + + + } + + @Override + public void onError(int code, String msg) { + + } + }); + } private void showLoginView() { LogUtils.i(TAG, "showLoginView"); diff --git a/app/src/main/res/drawable/button_false_bg_yl.xml b/app/src/main/res/drawable/button_false_bg_yl.xml new file mode 100644 index 0000000..b88fdf6 --- /dev/null +++ b/app/src/main/res/drawable/button_false_bg_yl.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/button_true_bg_yl.xml b/app/src/main/res/drawable/button_true_bg_yl.xml new file mode 100644 index 0000000..1d48341 --- /dev/null +++ b/app/src/main/res/drawable/button_true_bg_yl.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/cornor_thempink_12dp1.xml b/app/src/main/res/drawable/cornor_thempink_12dp1.xml new file mode 100644 index 0000000..88d9774 --- /dev/null +++ b/app/src/main/res/drawable/cornor_thempink_12dp1.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_bind_usdt.xml b/app/src/main/res/layout/activity_bind_usdt.xml index 062e91f..6b56e63 100644 --- a/app/src/main/res/layout/activity_bind_usdt.xml +++ b/app/src/main/res/layout/activity_bind_usdt.xml @@ -2,10 +2,10 @@ @@ -26,103 +26,102 @@ - + android:layout_height="wrap_content" + android:orientation="vertical" + android:visibility="gone"> - - - - - - - - - - - - - + android:background="@color/white" + android:orientation="vertical" + android:padding="@dimen/dp_15"> + + + + + + + + + + + + + + + + + +