Skip to content

Commit

Permalink
🔖 Released 2.5.0 stable
Browse files Browse the repository at this point in the history
  • Loading branch information
Flyge committed Oct 9, 2017
1 parent 3a74bb1 commit c3cf8c3
Showing 1 changed file with 139 additions and 0 deletions.
139 changes: 139 additions & 0 deletions docs/logs/log_2.5.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
这是一个大的重构版本,重点重构了日志和 uri 部分

:fire: 如果你用到了下述重命名、移除、重构、重命名以及 ErrorTracker 部分的话就不能无痛升级 :fire:

bugs:
* :bug: 修复在某些 ROM 上查找 Initializer 时碰到 meta 值不是 String 时崩溃的 BUG [#43]
* :bug: 修复 [Sketch] 的单例可能失效的 BUG
* :bug: 修复在多线程环境下可能拿到一个尚未执行 [Initializer][Sketch] 的 bug
* :bug: 修复 [ImageZoomer] 的双击事件和单击事件可能会有冲突的 BUG
* :bug: 修复通过 [SketchUtils].generatorTempFileName(DataSource, String) 方法生成的文件名中含有换行符导致创建文件失败的BUG,直接影响了 DataSource.getFile(File, String) 方法
* :bug: 修复当同一个文件被用于多种 uri 支持时,其磁盘缓存可能错乱的 BUG
* :bug: 修复由于混淆了 Sketch.onTrimMemory 和 Sketch.onLowMemory 方法导致其内部调用过滤失效的 bug

移除:
* :fire: 移除 SLogType,其功能整合到了 [SLog] 中,详情请参考 [日志][log]
* :fire: 移除 SLogTracker,新增 [SLog].Proxy 代替之,详情请参考 [日志][log]
* :fire: 移除 UriScheme,UriScheme.valueOfUri(String) 用 [UriModel].match(Context, String) 代替,UriScheme.xxx.createUri(String) 被 xxxUriModel.makeUri() 代替,[UriModel] 用法请参考 [UriModel 详解及扩展 URI][uri_model]
* :fire: 移除 ImagePreprocessor 用 [UriModel] 代替之,相关类 Preprocessor、PreProcessResult 也一并移除,[UriModel] 用法请参考 [UriModel 详解及扩展 URI][uri_model]
* :fire: 移除 [Sketch].createInstalledAppIconUri(String, int) 方法,[AppIconUriModel].makeUri(String, int) 方法替代之
* :fire: 移除 [DownloadHelper].listener(DownloadListener) 方法
* :fire: 移除 [LoadHelper].listener(LoadListener) 方法
* :fire: 移除 [SketchImageView].displayInstalledAppIcon(String, int) 方法,新的使用方法请参考 [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* :fire: 移除 [Sketch].displayInstalledAppIcon(String, int, SketchView) 方法,新的使用方法请参考 [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* :fire: 移除 [Sketch].loadInstalledAppIcon(String, int, LoadListener) 方法,新的使用方法请参考 [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* :fire: 删除 RequestLevelFrom ,因此取消原因中不再区分 REQUEST_LEVEL_IS_LOCAL 和 REQUEST_LEVEL_IS_MEMORY
* :fire: 删除 [CancelCause].REQUEST_LEVEL_IS_LOCAL 和 REQUEST_LEVEL_IS_MEMORY
* :fire: 删除 [SketchUtils].makeRequestKey(String, [UriModel], DownloadOptions) 方法,makeRequestKey(String, [UriModel], String) 方法代替之
* :fire: 删除 [SketchUtils].makeRequestKey(String, String) 方法,makeRequestKey(String, [UriModel], String) 方法代替之
* :fire: 删除 [SketchUtils].makeStateImageMemoryCacheKey(String, DownloadOptions) 方法,makeRequestKey(String, [UriModel], String) 方法代替之
* :fire: 删除 [SketchImageView].ImageShape
* :fire: 删除 [SketchImageView].getImageShape() 方法
* :fire: 删除 [SketchImageView].setImageShape([SketchImageView].ImageShape) 方法
* :fire: 删除 [SketchImageView].getImageShapeCornerRadius() 方法
* :fire: 删除 [SketchImageView].setImageShapeCornerRadius(float[]) 方法
* :fire: 删除 [SketchImageView].setImageShapeCornerRadius(float) 方法
* :fire: 删除 [SketchImageView].setImageShapeCornerRadius(float, float, float, float) 方法
* :fire: 移除 [SketchImageView] 按下状态的涟漪效果

重构:
* :hammer: file:// 格式的 uri 已产生的磁盘缓存将全部作废,因为其磁盘缓存 key 去掉了 file://
* :hammer: 现在你要显示 apk icon 就必须使用 apk.icon:// 协议,详情请参考 [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* :hammer: [DownloadListener]/[LoadListener]/[DisplayListener].onStarted() 方法现在只有需要进入异步线程加载或下载图片才会回调
* :hammer: [LoadHelper] 不再接受空的 [LoadListener]
* :hammer: [Sketch].displayFromContent(Uri, SketchView) 方法签名现在改为 [Sketch].displayFromContent(String, SketchView)
* :hammer: [Sketch].loadFromURI(Uri, SketchView) 方法重构为 [Sketch].loadFromContent(String, SketchView)
* :hammer: SketchImageView.displayContentImage(Uri) 方法签名现在改为 SketchImageView.displayContentImage(String)
* :hammer: [Initializer].onInitialize(Context, [Sketch], Configuration) 方法签名现在改为 onInitialize(Context, Configuration)
* :hammer: [ImageProcessor].process([Sketch], Bitmap, Resize, boolean, boolean) 方法签名现在改为 process([Sketch], Bitmap, [Resize], boolean)
* :hammer: [WrappedImageProcessor].onProcess([Sketch], Bitmap, Resize, boolean, boolean) 方法签名现在改为 onProcess([Sketch], Bitmap, Resize, boolean
* :hammer: 移除 resizeByFixedSize 属性,用 [Resize].byViewFixedSize() 代替,详情请参考 [使用 Resize 精确修改图片的尺寸][resize]
* :hammer: 移除 shapeSizeByFixedSize 属性,用 [ShapeSize].byViewFixedSize() 代替,详情请参考 [通过 ShapeSize 在绘制时改变图片的尺寸][shape_size]
* :hammer: 移除 forceUseResize 属性,用 [Resize].Mode 代替,详情请参考 [使用 Resize 精确修改图片的尺寸][resize]
* :hammer: 重构 ErrorCause 枚举属性
* :hammer: [ImageShaper] 接口新增 getPath(Rect bounds) 方法,获取形状的 Path
* :hammer: 重构 [SketchImageView] 的下载进度和按下状态功能的蒙层形状配置方式,详情请参考 [SketchImageView 使用指南][sketch_image_view]
* :hammer: key 中不再包含 decodeGifImage ,受此影响已经通过 cacheProcessedImageInDisk 生成的磁盘缓存将全部失效

重命名:
* :hammer: LargeImageViewer 重命名为 HugeImageViewer
* :hammer: [SketchImageView].isBlockDisplayLargeImageEnabled() 重命名为 isHugeImageEnabled()
* :hammer: [SketchImageView].setBlockDisplayLargeImageEnabled(boolean) 重命名为 setHugeImageEnabled(boolean)
* :hammer: [SketchImageView].getLargeImageViewer() 重命名为 getHugeImageViewer()
* :hammer: [Configuration].isGlobalPauseDownload() 重命名为 isPauseDownloadEnabled()
* :hammer: [Configuration].setGlobalPauseDownload(boolean) 重命名为 setPauseDownloadEnabled(boolean)
* :hammer: [Configuration].isGlobalPauseLoad() 重命名为 isPauseLoadEnabled()
* :hammer: [Configuration].setGlobalPauseLoad(boolean) 重命名为 setPauseLoadEnabled(boolean)
* :hammer: [Configuration].isGlobalLowQualityImage() 重命名为 isLowQualityImageEnabled()
* :hammer: [Configuration].setGlobalLowQualityImage(boolean) 重命名为 setLowQualityImageEnabled(boolean)
* :hammer: [Configuration].isGlobalInPreferQualityOverSpeed() 重命名为 isInPreferQualityOverSpeedEnabled()
* :hammer: [Configuration].setGlobalInPreferQualityOverSpeed(boolean) 重命名为 setInPreferQualityOverSpeedEnabled(boolean)
* :hammer: [Configuration].isGlobalMobileNetworkGlobalPauseDownload() 重命名为 isMobileDataPauseDownloadEnabled()
* :hammer: [Configuration].setGlobalMobileNetworkPauseDownload(boolean) 重命名为 setMobileDataPauseDownloadEnabled(boolean)
* :hammer: [Configuration].setImageSizeCalculator(ImageSizeCalculator) 重命名为 setSizeCalculator(ImageSizeCalculator)
* :hammer: [Configuration].getImageSizeCalculator() 方法改名为 getSizeCalculator
* :hammer: [LoadOptions].getImageProcessor() 重命名为 getProcessor()
* :hammer: [LoadOptions].setImageProcessor(ImageProcessor) 重命名为 setProcessor(ImageProcessor)
* :hammer: [DisplayOptions].getImageDisplayer() 重命名为 getDisplayer()
* :hammer: [DisplayOptions].setImageDisplayer(ImageDisplayer) 重命名为 setDisplayer(ImageDisplayer)
* :hammer: [DisplayOptions].getImageShaper() 重命名为 getShaper()
* :hammer: [DisplayOptions].setImageShaper(ImageShaper) 重命名为 setShaper(ImageShaper)

新增:
* :sparkles: 新增 [UriModel] 替代 UriScheme 和 ImagePreprocessor 实现支持不同的 uri 协议,你还可以通过 [UriModel] 轻松自定义 uri,详情请参考 [UriModel 详解及扩展 URI][uri_model]
* :sparkles: 新增 apk.icon:///sdcard/file.apk 协议来显示 apk icon,代替 ApkIconPreprocessor,详情请参考 [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* :sparkles: 新增 app.icon://me.xiaopan.sketchsample/240 协议来显示 app icon,代替 InstallAppIconPreprocessor,详情请参考 [显示 APK 或已安装 APP 的图标][display_apk_or_app_icon]
* :sparkles: 新增 android.resource://me.xiaopan.sketchsample/drawable/ic_launcher 协议,可显示别的 APP 的资源图片,详情请参考 [URI 类型及使用指南][uri]
* :sparkles: 新增 [OptionsFilter] 可统一过滤修改 Options,详情请参考 [统一修改 Options][options_filter]

优化:
* :zap: 移动数据暂停下载功能支持识别流量共享 WIFI 热点,更多内容请参考 [移动数据下暂停下载图片,节省流量][pause_download]
* :zap: 现在 sketch 里大部分对外的接口都加上了 @NonNull@Nullable 注解,因此现在需要明确依赖 support-annotations
* :zap: 支持处理 301 302 重定向,但仅支持重定向一次

sample app:
* :bug: 修复了 gif 图无法播放的问题
* :sparkles: MyPhotos 列表的图标可以变成圆角矩形的,由 "Show Round Rect In Photo List" 开关控制
* :hammer: 默认关闭 长按显示图片详情的功能,交由 "Long Clock Show Image Info" 开关控制
* :hammer: 现在视频缩略图模块 从 sample app 中抽离出去成为一个单独的 module [sample-video-thumbnail]
* :bug: 修复在 MyPhotos 页面如果数据量超大的话就会崩溃的 bug
* :lipstick: 重构图片详情页的长按菜单
* :lipstick: 兼容 MIX 2 的全屏显示

[Sketch]: ../../sketch/src/main/java/me/xiaopan/sketch/Sketch.java
[SketchImageView]: ../../sketch/src/main/java/me/xiaopan/sketch/SketchImageView.java
[SketchUtils]: ../../sketch/src/main/java/me/xiaopan/sketch/util/SketchUtils.java
[ImageShaper]: ../../sketch/src/main/java/me/xiaopan/sketch/shaper/ImageShaper.java
[CancelCause]: ../../sketch/src/main/java/me/xiaopan/sketch/request/CancelCause.java
[DownloadListener]: ../../sketch/src/main/java/me/xiaopan/sketch/request/DownloadListener.java
[LoadListener]: ../../sketch/src/main/java/me/xiaopan/sketch/request/LoadListener.java
[DisplayListener]: ../../sketch/src/main/java/me/xiaopan/sketch/request/DisplayListener.java
[Resize]: ../../sketch/src/main/java/me/xiaopan/sketch/request/Resize.java
[LoadOptions]: ../../sketch/src/main/java/me/xiaopan/sketch/request/LoadOptions.java
[DisplayOptions]: ../../sketch/src/main/java/me/xiaopan/sketch/request/DisplayOptions.java
[DownloadHelper]: ../../sketch/src/main/java/me/xiaopan/sketch/request/DownloadHelper.java
[LoadHelper]: ../../sketch/src/main/java/me/xiaopan/sketch/request/LoadHelper.java
[LoadHelper]: ../../sketch/src/main/java/me/xiaopan/sketch/request/LoadHelper.java
[OptionsFilter]: ../../sketch/src/main/java/me/xiaopan/sketch/optionsfilter/OptionsFilter.java
[Configuration]: ../../sketch/src/main/java/me/xiaopan/sketch/Configuration.java
[ImageZoomer]: ../../sketch/src/main/java/me/xiaopan/sketch/viewfun/zoom/ImageZoomer.java
[Initializer]: ../../sketch/src/main/java/me/xiaopan/sketch/Initializer.java
[UriModel]: ../../sketch/src/main/java/me/xiaopan/sketch/uri/UriModel.java
[AppIconUriModel]: ../../sketch/src/main/java/me/xiaopan/sketch/uri/AppIconUriModel.java
[SLog]: ../../sketch/src/main/java/me/xiaopan/sketch/SLog.java
[ImageProcessor]: ../../sketch/src/main/java/me/xiaopan/sketch/process/ImageProcessor.java
[WrappedImageProcessor]: ../../sketch/src/main/java/me/xiaopan/sketch/process/WrappedImageProcessor.java

[log]: ../wiki/log.md
[resize]: ../wiki/resize.md
[shape_size]: ../wiki/shape_size.md
[pause_download]: ../wiki/pause_download.md
[sketch_image_view]: ../wiki/sketch_image_view.md
[display_apk_or_app_icon]: ../wiki/display_apk_or_app_icon.md
[uri_model]: ../wiki/uri_model.md
[uri]: ../wiki/uri.md
[options_filter]: ../wiki/options_filter.md

[#43]: https://github.com/panpf/sketch/issues/43

[sample-video-thumbnail]: ../../sample-video-thumbnail/

0 comments on commit c3cf8c3

Please sign in to comment.