From 04f72091e46ca985b51d1efa67ca05b57c9ef322 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 17 Aug 2023 11:12:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=98=BF=E9=87=8C=E4=BA=91OSS=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=20https://jira.sh?= =?UTF-8?q?anqu.cc/browse/GHZS-3113?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/common/provider/ConfigProviderImpl.kt | 16 ++++++++++ .../com/gh/gamecenter/ImageViewerActivity.kt | 3 +- .../com/gh/gamecenter/entity/VideoEntity.kt | 12 ++++++- .../feedback/provider/ConfigProviderImpl.kt | 17 ++++++++++ .../common/utils/CompressImageUtils.kt | 12 ------- .../gh/gamecenter/common/utils/ImageUtils.kt | 32 ++++++++++++++----- .../core/provider/IConfigProvider.kt | 4 +++ .../feature/entity/SettingsEntity.kt | 16 +++------- .../feedback/provider/ConfigProviderImpl.kt | 17 ++++++++++ .../message/provider/ConfigProviderImpl.kt | 17 ++++++++++ .../setting/provider/ConfigProviderImpl.kt | 16 ++++++++++ .../compose/provider/ConfigProviderImpl.kt | 17 ++++++++++ 12 files changed, 146 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt b/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt index d131e53004..77df4bc5e6 100644 --- a/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/ConfigProviderImpl.kt @@ -56,6 +56,22 @@ class ConfigProviderImpl : IConfigProvider { return Config.getSettings()?.image?.oss?.gifWaterMark ?: "" } + override fun getVideoSnapshotSuffix(): String { + return Config.getSettings()?.image?.oss?.snapshot ?: "" + } + + override fun getImageCropSuffix(): String { + return Config.getSettings()?.image?.oss?.crop ?: "" + } + + override fun getImageInfoSuffix(): String { + return Config.getSettings()?.image?.oss?.crop ?: "" + } + + override fun getImageResizeSuffix(): String { + return Config.getSettings()?.image?.oss?.resize ?: "" + } + override fun getQQ(): String { return Config.getSettings()?.support?.qq ?: "" } diff --git a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt index 11835c3465..7a33ebdf9a 100644 --- a/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/ImageViewerActivity.kt @@ -385,8 +385,9 @@ class ImageViewerActivity : BaseActivity(), OnPageChangeListener { private fun loadImageInfo(position: Int, width: Int) { val url = mUrlList!![position] + val imageInfoConfig = Config.getSettings()?.image?.oss?.info ?: "?x-oss-process=image/info" RetrofitManager.getInstance() - .api.getImageInfo("$url?x-oss-process=image/info") + .api.getImageInfo("$url$imageInfoConfig") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Response() { diff --git a/app/src/main/java/com/gh/gamecenter/entity/VideoEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/VideoEntity.kt index 18d01e3658..b44062980a 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/VideoEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/VideoEntity.kt @@ -1,6 +1,9 @@ package com.gh.gamecenter.entity import android.os.Parcelable +import com.alibaba.android.arouter.launcher.ARouter +import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.core.provider.IConfigProvider import com.gh.gamecenter.feature.entity.GameEntity import com.gh.gamecenter.feature.entity.MeEntity import com.gh.gamecenter.feature.entity.SourceEntity @@ -72,7 +75,14 @@ open class VideoEntity( val gameName: String get() = mGameName.removeSuffix(".") + (nameSuffix ?: "") - fun getThumb() = "$url?x-oss-process=video/snapshot,t_0,f_jpg,w_0,h_0,ar_auto" + fun getThumb(): String { + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + return if (!configProvider?.getVideoSnapshotSuffix().isNullOrEmpty()) { + "$url${configProvider?.getVideoSnapshotSuffix()},t_0,f_jpg,w_0,h_0,ar_auto" + } else { + "$url?x-oss-process=video/snapshot,t_0,f_jpg,w_0,h_0,ar_auto" + } + } @Parcelize class Time(val upload: Long = 0) : Parcelable diff --git a/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt b/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt index 2b1521b9d4..0eeb3c0a79 100644 --- a/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt +++ b/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt @@ -55,6 +55,23 @@ class ConfigProviderImpl : IConfigProvider { return "" } + + fun getVideoSnapshotSuffix(): String { + return "" + } + + fun getImageCropSuffix(): String { + return "" + } + + fun getImageInfoSuffix(): String { + return "" + } + + fun getImageResizeSuffix(): String { + return "" + } + override fun getQQ(): String { return "" } diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt index 0ec71abd1e..9019ddccd9 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/CompressImageUtils.kt @@ -162,18 +162,6 @@ object CompressImageUtils { return scaledBitmap } -// private fun getImageSetting(): SettingsEntity.Image { -// val settings = Config.getSettings() -// if (settings?.image != null) { -// return settings.image!! -// } -// val image = SettingsEntity.Image() -// image.processLimitSize = compressLimitSize -// image.size = defaultCompressBorder -// image.ratio = defaultRatio -// image.quality = defaultQuality -// return image -// } } enum class CompressType { diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt index f5227b152f..0354a42607 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/ImageUtils.kt @@ -138,10 +138,10 @@ object ImageUtils { // 全部图片转 png if (mDisplayStaticImageOnly) { - webpConfig = "?x-oss-process=image/format,png/quality,q_90" + webpConfig = webpConfig.replace("webp", "png") } - if (imageUrl?.contains("?x-oss-process") == false && jpegConfig != null) { + if (imageUrl?.contains("s-process") == false && jpegConfig != null) { // jpegConfig 为空的时候尝试用 webp 加载 return if (width == 0 || width == null || TextUtils.isEmpty(jpegConfig)) { "$imageUrl$webpConfig" @@ -462,7 +462,8 @@ object ImageUtils { } else { runOnUiThread { view ?: return@runOnUiThread - highResUrl = resizeAnimatedImage(url, width ?: view.width, height ?: 0, ignoreDefaultAnimatedImageResize) + highResUrl = + resizeAnimatedImage(url, width ?: view.width, height ?: 0, ignoreDefaultAnimatedImageResize) highResUrl = getCutUrl(highResUrl, width ?: 0, processor) loadImageClosure(loadAsAnimatedImage, highResUrl, lowResUrl) } @@ -471,7 +472,7 @@ object ImageUtils { view?.tag = url } } - + private fun getCutUrl(url: String, width: Int, processor: Postprocessor?): String { if (width > 0 && processor != null) { var height = 0 @@ -479,10 +480,17 @@ object ImageUtils { height = (width / processor.cutRatio).toInt() } if (height > 0) { - return if (url.contains("?x-oss-process")) { + val configProvider = + ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + + val cropSuffix = configProvider?.getImageCropSuffix() ?: "" + + return if (url.contains("s-process")) { "${url}/crop,h_${height}" + } else if (cropSuffix.isNotEmpty()){ + "${url}${cropSuffix},h_${height}" } else { - "${url}?x-oss-process=image/crop,h_${height}" + url } } } @@ -588,7 +596,10 @@ object ImageUtils { private fun resizeAnimatedImage(url: String, width: Int, height: Int, ignoreDefaultResize: Boolean): String { val idealSize = if (ignoreDefaultResize) width else getIdealAnimatedImageSize(width, height) - return "$url?x-oss-process=image/resize,h_$idealSize,w_$idealSize".also { addCachedUrl(it) } + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + val resizeConfig = configProvider?.getImageResizeSuffix() ?: "?x-oss-process=image/resize" + + return "$url$resizeConfig,h_$idealSize,w_$idealSize".also { addCachedUrl(it) } } private fun getIdealAnimatedImageSize(width: Int, height: Int): String { @@ -608,7 +619,12 @@ object ImageUtils { } fun getVideoSnapshot(videoUrl: String, progress: Long): String { - return "$videoUrl?x-oss-process=video/snapshot,t_$progress,f_jpg,w_0,h_0,ar_auto" + val configProvider = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider + return if (!configProvider?.getVideoSnapshotSuffix().isNullOrEmpty()) { + "$videoUrl${configProvider?.getVideoSnapshotSuffix()},t_$progress,f_jpg,w_0,h_0,ar_auto" + } else { + "$videoUrl?x-oss-process=video/snapshot,t_$progress,f_jpg,w_0,h_0,ar_auto" + } } /** diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt index e3d01daefc..8de1b409d4 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IConfigProvider.kt @@ -15,6 +15,10 @@ interface IConfigProvider : IProvider { fun getWebp(): String fun getGitThumb(): String fun getGifWaterMark(): String + fun getVideoSnapshotSuffix(): String + fun getImageCropSuffix(): String + fun getImageInfoSuffix(): String + fun getImageResizeSuffix(): String fun getQQ(): String fun getQQun(): String fun getQQunKey(): String diff --git a/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/SettingsEntity.kt b/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/SettingsEntity.kt index 7c38326e65..540f43519d 100644 --- a/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/SettingsEntity.kt +++ b/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/SettingsEntity.kt @@ -42,10 +42,6 @@ class SettingsEntity( var webviewDownloadUrl: String = "",//webview下载地址 ) { - fun setCommunityEntrance(communityEntrance: String) { - this.communityEntrance = communityEntrance - } - fun showCommunityEntrance(): Boolean { val preferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance()) @@ -60,10 +56,6 @@ class SettingsEntity( return false } - fun setArticleEntrance(articleEntrance: String) { - this.articleEntrance = articleEntrance - } - fun showArticleEntrance(): Boolean { val preferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance()) @@ -93,14 +85,16 @@ class SettingsEntity( @SerializedName("gif_thumb") var gitThumb: String? = "", @SerializedName("gif_watermark") - var gifWaterMark: String? = "" + var gifWaterMark: String? = "", + var snapshot: String, + var crop: String, + var info: String, + var resize: String ) class Image( @SerializedName("upload_limit_size") var uploadLimitSize: Long = 0, - @SerializedName("process_limit_size") - var processLimitSize: Long = 0, var size: Int = 0, var quality: Int = 0, var ratio: Int = 0, diff --git a/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt b/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt index 5240e1559e..0a82c85ae3 100644 --- a/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt +++ b/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/ConfigProviderImpl.kt @@ -56,6 +56,23 @@ class ConfigProviderImpl : IConfigProvider { return "" } + + fun getVideoSnapshotSuffix(): String { + return "" + } + + fun getImageCropSuffix(): String { + return "" + } + + fun getImageInfoSuffix(): String { + return "" + } + + fun getImageResizeSuffix(): String { + return "" + } + override fun getQQ(): String { return "" } diff --git a/module_message/src/message/java/com/gh/gamecenter/message/provider/ConfigProviderImpl.kt b/module_message/src/message/java/com/gh/gamecenter/message/provider/ConfigProviderImpl.kt index d146d562a2..fb42a01d7d 100644 --- a/module_message/src/message/java/com/gh/gamecenter/message/provider/ConfigProviderImpl.kt +++ b/module_message/src/message/java/com/gh/gamecenter/message/provider/ConfigProviderImpl.kt @@ -55,6 +55,23 @@ class ConfigProviderImpl : IConfigProvider { return "" } + + fun getVideoSnapshotSuffix(): String { + return "" + } + + fun getImageCropSuffix(): String { + return "" + } + + fun getImageInfoSuffix(): String { + return "" + } + + fun getImageResizeSuffix(): String { + return "" + } + override fun getQQ(): String { return "" } diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt index a3dbb861bc..35fce7435b 100644 --- a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/ConfigProviderImpl.kt @@ -55,6 +55,22 @@ class ConfigProviderImpl : IConfigProvider { return "" } + fun getVideoSnapshotSuffix(): String { + return "" + } + + fun getImageCropSuffix(): String { + return "" + } + + fun getImageInfoSuffix(): String { + return "" + } + + fun getImageResizeSuffix(): String { + return "" + } + override fun getQQ(): String { return "" } diff --git a/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/ConfigProviderImpl.kt b/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/ConfigProviderImpl.kt index 625a6918cb..0a53dd29fb 100644 --- a/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/ConfigProviderImpl.kt +++ b/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/ConfigProviderImpl.kt @@ -55,6 +55,23 @@ class ConfigProviderImpl : IConfigProvider { return "" } + + fun getVideoSnapshotSuffix(): String { + return "" + } + + fun getImageCropSuffix(): String { + return "" + } + + fun getImageInfoSuffix(): String { + return "" + } + + fun getImageResizeSuffix(): String { + return "" + } + override fun getQQ(): String { return "" }