From 1e91f4c7164a8c25d2af4f0c133f3bd0fe52fe1d Mon Sep 17 00:00:00 2001 From: hch <16607480311@163.com> Date: Sun, 7 Apr 2024 17:29:08 +0800 Subject: [PATCH] =?UTF-8?q?fix=20[=E4=BF=AE=E5=A4=8D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 4 ++++ common/proguard-rules.pro | 3 +++ .../com/yunbao/common/upload/UploadBean.java | 13 ++++++++++++ .../yunbao/common/upload/UploadQnImpl.java | 19 +++++++++++++++--- .../yunbao/common/views/GradientDrawable.java | 18 +++++++++++++++++ .../main/res/layout/activity_user_home.xml | 7 +++++++ .../src/main/res/layout/item_comment_view.xml | 7 ++----- .../src/main/res/mipmap-xxhdpi/bg_main_bg.png | Bin 0 -> 886037 bytes .../res/mipmap-xxhdpi/icon_back_new01.png | Bin 0 -> 2046 bytes common/src/main/res/values-en-rUS/strings.xml | 1 + common/src/main/res/values-zh-rHK/strings.xml | 1 + common/src/main/res/values-zh-rTW/strings.xml | 1 + common/src/main/res/values-zh/strings.xml | 1 + common/src/main/res/values/strings.xml | 1 + live/src/main/res/layout/item_main_com.xml | 7 +++++-- .../activity/CommunityDetailsActivity.java | 1 + .../main/activity/UserHomeActivity.java | 7 ++++++- .../views/AbsMainHomeParentComViewHolder.java | 8 ++++---- main/src/main/res/layout/activity_main.xml | 2 +- main/src/main/res/layout/view_homemain.xml | 9 +++++---- .../main/res/layout/view_main_home_com.xml | 4 ++-- .../video/views/VideoPlayViewHolder.java | 16 +++++++++------ .../main/res/layout/activity_video_play.xml | 12 +++++------ 23 files changed, 107 insertions(+), 35 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/views/GradientDrawable.java create mode 100644 common/src/main/res/mipmap-xxhdpi/bg_main_bg.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_back_new01.png diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 33167f5..8fd155f 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -295,3 +295,7 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.shayu.lib_google.**{*;} -keep class com.shayu.lib_huawei.**{*;} + +-keep class com.qiniu.**{*;} +-keep class com.qiniu.**{public ();} +-ignorewarnings diff --git a/common/proguard-rules.pro b/common/proguard-rules.pro index adcfd42..3489a10 100644 --- a/common/proguard-rules.pro +++ b/common/proguard-rules.pro @@ -23,3 +23,6 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile +-keep class com.qiniu.**{*;} +-keep class com.qiniu.**{public ();} +-ignorewarnings \ No newline at end of file diff --git a/common/src/main/java/com/yunbao/common/upload/UploadBean.java b/common/src/main/java/com/yunbao/common/upload/UploadBean.java index df599dc..920f3a5 100644 --- a/common/src/main/java/com/yunbao/common/upload/UploadBean.java +++ b/common/src/main/java/com/yunbao/common/upload/UploadBean.java @@ -89,4 +89,17 @@ public class UploadBean { public void setTag(Object tag) { mTag = tag; } + + @Override + public String toString() { + return "UploadBean{" + + "mOriginFile=" + mOriginFile + + ", mCompressFile=" + mCompressFile + + ", mRemoteFileName='" + mRemoteFileName + '\'' + + ", mRemoteAccessUrl='" + mRemoteAccessUrl + '\'' + + ", mSuccess=" + mSuccess + + ", mType=" + mType + + ", mTag=" + mTag + + '}'; + } } diff --git a/common/src/main/java/com/yunbao/common/upload/UploadQnImpl.java b/common/src/main/java/com/yunbao/common/upload/UploadQnImpl.java index dd97616..a96ce6a 100644 --- a/common/src/main/java/com/yunbao/common/upload/UploadQnImpl.java +++ b/common/src/main/java/com/yunbao/common/upload/UploadQnImpl.java @@ -50,7 +50,8 @@ public class UploadQnImpl implements UploadStrategy { mCompletionHandler = new UpCompletionHandler() { @Override public void complete(String key, ResponseInfo info, JSONObject response) { - L.e("UploadQnImpl 上传-----ok----> " + info.isOK() + "--key---> " + "---response---> " + (response != null ? response.toString() : null)); + System.out.println("UploadQnImpl 上传-----ok----> " + info.isOK() + "--key---> " + "---response---> " + (response != null ? response.toString() : null)); + //L.e("UploadQnImpl 上传-----ok----> " + info.isOK() + "--key---> " + "---response---> " + (response != null ? response.toString() : null)); try { assert response != null; mList.get(mIndex).setRemoteAccessUrl(response.getString("key")); @@ -93,6 +94,7 @@ public class UploadQnImpl implements UploadStrategy { @Override public void upload(List list, boolean needCompress, UploadCallback callback, boolean isImg) { + System.err.println("-------upload------>" + list.size()); if (callback == null) { return; } @@ -122,6 +124,7 @@ public class UploadQnImpl implements UploadStrategy { public void onSuccess(int code, String msg, String[] info) { if (code == 0 && info.length > 0) { mToken = info[0]; + System.err.println("-------上传的token------>" + mToken); L.e(TAG, "-------上传的token------>" + mToken); uploadNext(); } @@ -145,10 +148,13 @@ public class UploadQnImpl implements UploadStrategy { while (mIndex < mList.size() && (bean = mList.get(mIndex)).getOriginFile() == null) { mIndex++; } + System.err.println("-------mIndex >= mList.size() mIndex------>" + mIndex); if (mIndex >= mList.size()) { + System.err.println("-------mIndex >= mList.size()------>" + mList.size()); if (mUploadCallback != null) { mUploadCallback.onFinish(mList, true); } + System.err.println("-------mIndex >= mList.returnreturnreturnreturn------>" + mList.size()); return; } if (bean.getType() == UploadBean.IMG) { @@ -158,7 +164,10 @@ public class UploadQnImpl implements UploadStrategy { } else if (bean.getType() == UploadBean.VOICE) { bean.setRemoteFileName(StringUtil.contact(StringUtil.generateFileName(), ".m4a")); } - if (bean.getType() == UploadBean.IMG && mNeedCompress) { + System.err.println("-------mIndex >= bean.getType() == UploadBean.IMG------>" + bean); + upload(bean); + /*if (bean.getType() == UploadBean.IMG && mNeedCompress) { + System.err.println("-------UploadBean.IMG && mNeedCompress------>" + bean + "UploadBean.IMG:" + UploadBean.IMG + "__mNeedCompress" + mNeedCompress); if (mLubanBuilder == null) { mLubanBuilder = Luban.with(mContext).ignoreBy(8)//8k以下不压缩 .setTargetDir(CommonAppConfig.INNER_PATH).setRenameListener(new OnRenameListener() { @@ -186,12 +195,15 @@ public class UploadQnImpl implements UploadStrategy { } mLubanBuilder.load(bean.getOriginFile()).launch(); } else { + System.err.println("-------bean.getType() == UploadBean.IMG && mNeedCompress else"); upload(bean); - } + }*/ } private void upload(UploadBean bean) { + System.err.println("-------upload(UploadBean bean)------>" + bean); if (bean != null && !TextUtils.isEmpty(mToken) && mCompletionHandler != null) { + System.err.println("bean != null && !TextUtils.isEmpty(mToken) && mCompletionHandler != null"); if (mUploadManager == null) { Zone zone = new Zone(new ServiceAddress("http://upload-z0.qiniup.com"), new ServiceAddress("http://up-z0.qiniup.com")); Configuration configuration = new Configuration.Builder().zone(zone).build(); @@ -206,6 +218,7 @@ public class UploadQnImpl implements UploadStrategy { } mUploadManager.put(uploadFile, bean.getRemoteFileName(), mToken, mCompletionHandler, null); } else { + System.err.println("else bean != null && !TextUtils.isEmpty(mToken) && mCompletionHandler != null"); if (mUploadCallback != null) { mUploadCallback.onFinish(mList, false); } diff --git a/common/src/main/java/com/yunbao/common/views/GradientDrawable.java b/common/src/main/java/com/yunbao/common/views/GradientDrawable.java new file mode 100644 index 0000000..f663208 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/GradientDrawable.java @@ -0,0 +1,18 @@ +package com.yunbao.common.views; + +public class GradientDrawable extends android.graphics.drawable.GradientDrawable { + private int startColor; + private int endColor; + + public GradientDrawable(int startColor, int endColor) { + super(Orientation.TOP_BOTTOM, new int[]{startColor, endColor}); + this.startColor = startColor; + this.endColor = endColor; + } + + public void setColors(int startColor, int endColor) { + this.startColor = startColor; + this.endColor = endColor; + setColors(new int[]{startColor, endColor}); + } +} diff --git a/common/src/main/res/layout/activity_user_home.xml b/common/src/main/res/layout/activity_user_home.xml index 732c904..ab597c2 100644 --- a/common/src/main/res/layout/activity_user_home.xml +++ b/common/src/main/res/layout/activity_user_home.xml @@ -43,6 +43,13 @@ android:layout_height="match_parent" android:scaleType="centerCrop" /> + + @@ -92,9 +90,8 @@ android:id="@+id/report" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="10dp" android:layout_marginRight="5dp" - android:padding="10dp" + android:padding="9dp" android:text="@string/chat_report" android:textColor="#333333" android:textSize="11dp" diff --git a/common/src/main/res/mipmap-xxhdpi/bg_main_bg.png b/common/src/main/res/mipmap-xxhdpi/bg_main_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..eecc6cc4276a4e74e9e1bad41fbc7d03da075b0b GIT binary patch literal 886037 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