Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compose重构以及模组化代码合并 #39

Merged
merged 362 commits into from
Mar 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
362 commits
Select commit Hold shift + click to select a range
cd066b6
[modify]完善创建歌单页面
cy745 Dec 4, 2023
a2f2be5
[modify]扩展PlaylistRepository的方法
cy745 Dec 4, 2023
4105f68
[modify]实现PlaylistRepository的方法
cy745 Dec 4, 2023
62ea43c
[modify]去除PlaylistViewModel
cy745 Dec 4, 2023
80836d3
[modify]添加文本资源
cy745 Dec 4, 2023
9b73c69
[modify]调整完善歌单列表页面的布局,添加删除歌单的Action
cy745 Dec 4, 2023
d485d54
[modify]避免PlaylistSp被外部获取
cy745 Dec 4, 2023
e9aec79
[modify]当subTitle为空时隐藏Text组件,避免留下空白间距
cy745 Dec 4, 2023
785f183
[modify]完善创建歌单时的副标题参数传入
cy745 Dec 4, 2023
bd2c5df
[modify]添加并实现从某歌单移除指定歌曲的逻辑
cy745 Dec 4, 2023
763cc53
[modify]添加从某歌单移除指定歌曲的按钮,初步完善歌单详情页面
cy745 Dec 4, 2023
33f90db
[modify]添加并实现和完善我喜欢歌单相关的方法,添加自动创建我喜欢歌单的逻辑
cy745 Dec 4, 2023
a219c60
[modify]为我喜欢歌单的相关文本设置特定的资源
cy745 Dec 4, 2023
e307981
[modify]设置进入歌单列表页面的时候自动检查我喜欢歌单是否存在并创建的逻辑
cy745 Dec 4, 2023
e518c6b
[modify]完善歌曲详情页中我喜欢按钮与Playlist模块的对接逻辑,优化该按钮点击样式
cy745 Dec 4, 2023
0b78f81
[modify]创建longClickable函数,实现自定义长按触发回调时长的需求
cy745 Dec 4, 2023
1f14185
[modify]添加forLongClick参数,用于区分action是否应该由长按触发
cy745 Dec 4, 2023
8c924c9
[modify]创建LongClickableTextButton,实现长按触发按钮Action的逻辑和显示当前长按进度的效果
cy745 Dec 4, 2023
71680f2
[modify]设置action为长按触发
cy745 Dec 4, 2023
5631a04
[modify]使用新的Reorderable组件,解决高度不一的元素交换时出现的闪动问题
cy745 Dec 6, 2023
5324ae9
[modify]完善歌曲卡片中获取是否已处于我喜欢歌单的基础逻辑
cy745 Dec 6, 2023
9d9d07a
[modify]为Songs添加拖拽排序的逻辑,在内部区分使用何种SongListWrapper
cy745 Dec 6, 2023
4544920
[modify]优化代码,添加并实现更新歌单内MediaIds的方法
cy745 Dec 6, 2023
37dfbcd
[modify]替换拖拽排序组件,优化代码
cy745 Dec 6, 2023
09c954a
[modify]完善歌单详情页的基础逻辑
cy745 Dec 6, 2023
9004781
[modify]添加图标资源
cy745 Dec 6, 2023
dbbb15e
[modify]优化歌单列表的间距样式
cy745 Dec 6, 2023
a5501c0
[modify]取消自动为我喜欢歌单替换文本资源的逻辑,添加爱心图标进行标识
cy745 Dec 6, 2023
a09dc77
[modify]取消自动为我喜欢歌单替换文本资源的逻辑,调整为创建歌单时填入文本
cy745 Dec 6, 2023
46e7a43
[modify]调整该页面为既可更新歌单也可创建歌单
cy745 Dec 6, 2023
e52fd3e
[modify]完善歌单详情页面的操作按钮逻辑
cy745 Dec 6, 2023
55d520a
[modify]修正状态栏沉浸模式启用的判断逻辑
cy745 Dec 6, 2023
59a42fb
[modify]完善页面信息,添加歌单间选择歌曲后添加至另一歌单的按钮
cy745 Dec 6, 2023
076be8b
[modify]完善页面信息,添加跳转创建歌单页面按钮
cy745 Dec 6, 2023
cdf2b8e
[modify]调整按钮颜色
cy745 Dec 6, 2023
d51cf68
[modify]调整歌单卡片背景样式
cy745 Dec 6, 2023
ad51ac5
[modify]实现LoadingScaffold,用于存在加载过程的页面使用,避免长时间显示空白页面
cy745 Dec 7, 2023
8b42280
[modify]恢复专辑详情页的基础结构
cy745 Dec 7, 2023
3a6841e
[modify]简单封装
cy745 Dec 7, 2023
cb795ba
[modify]恢复专辑瀑布流列表页的基础结构
cy745 Dec 7, 2023
8ad46fc
[modify]避免加载成功后数据更新时重启过渡动画
cy745 Dec 7, 2023
5acdbeb
[modify]解决页面返回,恢复列表位置时跳动的问题
cy745 Dec 7, 2023
ad62aae
[modify]页面加载状态与数据更新触发页面更新的逻辑拆分,彻底解决页面加载成功后数据更新仍触发页面进入动画的问题
cy745 Dec 7, 2023
d38d8e0
[modify]完善文本资源
cy745 Dec 7, 2023
a4d4de4
[modify]封装完善空布局基础逻辑
cy745 Dec 7, 2023
d7856c6
[modify]使用封装好的LoadingScaffold简化代码
cy745 Dec 7, 2023
2d5fbd7
[modify]初步恢复艺术家列表页面,调整ArtistCard样式
cy745 Dec 8, 2023
e8cdaf8
[modify]为NavigatorHeader添加titleScale参数用于多Header存在的情况下区分优先级
cy745 Dec 8, 2023
15e25f7
[modify]添加并实现showMultiple方法
cy745 Dec 8, 2023
8278f1d
[modify]添加singleTop控制参数
cy745 Dec 8, 2023
cba16be
[modify]完善艺术家详情页面,添加相关艺术家的显示逻辑
cy745 Dec 8, 2023
b61d69b
[modify]初步完成历史记录页页面结构,移除旧的HistoryScreen
cy745 Dec 8, 2023
a49a7c8
[modify]优化ExtensionLoadResult结构,添加并初步实现加载Apk插件的逻辑
cy745 Dec 9, 2023
95085e0
[modify]抽离Extension的基础加载逻辑形成接口
cy745 Dec 9, 2023
b496de3
[modify]拆分对应逻辑的Loader,新增CacheApkExtensionLoader,实现从外部Apk加载插件的逻辑
cy745 Dec 9, 2023
e043a60
[modify]更新依赖版本
cy745 Dec 9, 2023
e1ec949
[modify]适配插件ExtensionLoadResult变化
cy745 Dec 9, 2023
92dc0b2
[modify]解决register无法编译通过的问题
cy745 Dec 9, 2023
0cd17ab
[modify]调整混淆配置,去除无用定义
cy745 Dec 9, 2023
29a9096
[modify]移除DialogWrapper,待定新的Dialog实现方式
cy745 Dec 9, 2023
839a919
[modify]去除重组高亮提示
cy745 Dec 9, 2023
446ba6a
[create]创建lextension模块
cy745 Dec 9, 2023
8804576
[create]引入lextension模块
cy745 Dec 10, 2023
220355d
[create]调整extension-core模块的依赖结构
cy745 Dec 10, 2023
ae49366
[create]添加图标资源
cy745 Dec 10, 2023
c6b795b
[create]创建ExtensionCard
cy745 Dec 10, 2023
ac4481f
[modify]初步完善Extension列表页的拖拽排序逻辑
cy745 Dec 10, 2023
eb73b40
[modify]为ExtensionCard扩展显示隐藏控制逻辑
cy745 Dec 13, 2023
3b6c4f5
[modify]拆分出ExtensionList,ScreenModel中实现控制显示隐藏的数据逻辑
cy745 Dec 13, 2023
f81f5a6
[modify]简化HomeScreen
cy745 Dec 13, 2023
9d19162
[modify]注册ExtensionModule
cy745 Dec 13, 2023
9fec41b
[create]创建ldictionary模块
cy745 Dec 13, 2023
f957dd5
[modify]修正命名
cy745 Dec 13, 2023
9649532
[modify]调整ExtensionsScreen为单例,避免重复创建该页面
cy745 Dec 13, 2023
4ee2eb2
[modify]引入并注册Dictionary相关组件
cy745 Dec 13, 2023
20c8525
[modify]添加debounce防抖逻辑
cy745 Dec 19, 2023
5f1b0bb
[modify]更新LMedia引用
cy745 Dec 23, 2023
145c8e5
[modify]更新LMedia引用
cy745 Dec 24, 2023
3586cca
[modify]修改LSong相关的参数引用
cy745 Dec 24, 2023
ec277cb
[modify]扩展onFinished回调
cy745 Dec 25, 2023
8bd9de1
[modify]添加并实现开始播放时指定开始位置的逻辑,解决刚启动时拖动进度条导致闪退的问题
cy745 Dec 25, 2023
c9ee6f2
[modify]调整nowVolumes大小,避免丢失音量记录数据
cy745 Dec 25, 2023
4464e83
[modify]封装LMediaPlayer,将isPrepared的数据分散记录至MediaPlayer
cy745 Dec 25, 2023
560ca4b
[modify]调整重新播放逻辑
cy745 Dec 25, 2023
339b208
[modify]构建MediaPlayer复用池,解决偶现的各种MediaPlayer泄露问题,解决isPrepared数据不精准导致在非…
cy745 Dec 25, 2023
f1f54a1
[modify]UpdatableQueue添加监听播放队列变化的逻辑
cy745 Dec 27, 2023
3842771
[modify]避免重复不必要的预加载操作
cy745 Dec 27, 2023
0c6f47e
[modify]添加联动播放列表监听变化,解决队列中移除了预加载元素,但之后还是会播放该元素的问题
cy745 Dec 27, 2023
43efd0d
[modify]避免随机播放模式时异常重复进行预加载
cy745 Dec 27, 2023
e2f95cb
[modify]修正代码错误,解决播放时MediaPlayer音量异常为0的问题
cy745 Dec 27, 2023
4f6f2c8
[modify]优化完善音频文件内嵌封面的提取逻辑,优先使用Taglib提取,提升效率
cy745 Dec 31, 2023
5736b1f
[modify]调整针对ksp类型任务的判断逻辑
cy745 Dec 31, 2023
2757536
[fix]解决ModalBottomSheetLayout的sheetContent滑动时出现的跳动异常
cy745 Jan 2, 2024
fd5829b
[create]初步实现Compose的LyricLayout,自定义实现LazyColumn的animateScrollTo的逻辑,待完善
cy745 Jan 2, 2024
0164c07
[modify]调整将歌词写入音频文件的逻辑
cy745 Jan 4, 2024
34f7f9f
[modify]优化依赖构建方式,避免写无用的get()
cy745 Jan 4, 2024
91341e6
[create]创建ValueCat模块,使用悬浮窗实时监控某些变量的变化
cy745 Jan 6, 2024
4da1e45
[modify]引入ValueCat
cy745 Jan 6, 2024
8982612
[modify]accompanist转移至component模块
cy745 Jan 6, 2024
37ddc53
[modify]新增alpha版本
cy745 Jan 6, 2024
8c329cc
[modify]依赖更新,compose使用alpha版的bom
cy745 Jan 6, 2024
99f0684
[create]创建ComposeNestedScrollRecyclerView,用于修改RecyclerView滚动时的dy值,解决R…
cy745 Jan 6, 2024
0131afd
[modify]替换默认的Activity实现
cy745 Jan 9, 2024
e94d610
[modify]去除无用依赖,调整编译代码兼容目标
cy745 Jan 9, 2024
0f3bff9
[modify]去除不必要的依赖
cy745 Jan 9, 2024
85a0462
[modify]解决divide by zero问题
cy745 Jan 10, 2024
032ea9f
[modify]解决空指针异常,解决删除列表中最后一首歌曲仍继续播放的问题
cy745 Jan 10, 2024
bb2c7b5
[modify]解决空指针异常
cy745 Jan 10, 2024
7161a87
[modify]去除反射调用,点击和横向滑动时不处理,纵向滑动时修改其y轴值
cy745 Jan 10, 2024
e95b049
[create]创建playingLayout,初步完成Playing的View结构转Compose任务
cy745 Jan 10, 2024
5c833ba
[modify]解决歌词的行号更新过快导致滚动时抽动的问题,完善动态更新位移的逻辑
cy745 Jan 10, 2024
ca61428
[modify]解决在RecyclerView元素为空时拖动仍会出现抽动的问题
cy745 Jan 11, 2024
efe9593
[modify]解决LyricLayout在触摸触发滚动时出现的卡顿问题
cy745 Jan 11, 2024
72fd512
[modify]优化StackBlurUtils,添加预加载方法,增加extraKey用于扩展区分逻辑
cy745 Jan 11, 2024
058a475
[modify]解决LyricLayout中key值冲突的问题
cy745 Jan 11, 2024
4f6617f
[create]创建SeekbarLayout,封装原有进度条操控逻辑
cy745 Jan 11, 2024
93d5be3
[modify]完善BlurBackground渲染逻辑,解决图片缩放异常的问题
cy745 Jan 11, 2024
afcd9f3
[modify]完善播放页的各组件联动逻辑
cy745 Jan 11, 2024
5d4ca90
[modify]优化完善edgeTransparent方法
cy745 Jan 12, 2024
07c7fed
[create]封装LazyListAnimateScroller,优化代码
cy745 Jan 12, 2024
d741b9e
[modify]优化完善歌词显示效果
cy745 Jan 12, 2024
8b406e1
[create]创建TTML格式解析逻辑
cy745 Jan 12, 2024
eb0deff
[modify]调整keyEvent为SharedFlow避免事件丢失,添加enableScrollAnimation外部控制参数
cy745 Jan 13, 2024
dbd1af5
[modify]添加getKeys方法供外部直接获取已存储的keys
cy745 Jan 13, 2024
26a0ad7
[modify]添加松手后定时归位的逻辑,添加外部控制启用滚动功能的参数
cy745 Jan 13, 2024
8867e18
[modify]添加safeIsPlaying扩展函数,避免因player的状态异常导致闪退
cy745 Jan 13, 2024
1b77d2e
[modify]解决fling后贴边时与只贴临近边的预期不同的问题
cy745 Jan 13, 2024
9f25d1c
[modify]添加歌词页面展开时下滑进入拖拽模式,白条处上滑退出的逻辑,优化代码结构
cy745 Jan 13, 2024
b21bbe6
[modify]为两句歌词间添加间距,添加扩展参数
cy745 Jan 13, 2024
24ef78a
[modify]允许外部传入listState,完善LyricSentence参数传递
cy745 Jan 13, 2024
bf4ee71
[modify]整合LyricViewToolbar与PlayingToolbar
cy745 Jan 13, 2024
a492681
[modify]完善PlayingToolbar显示extra按钮的控制逻辑
cy745 Jan 13, 2024
7f92623
[modify]解决歌词图标不显示的异常问题
cy745 Jan 13, 2024
23f1adc
[modify]添加播放队列更新事件,解决队列变化后不重置预加载歌曲的问题
cy745 Jan 21, 2024
194b478
[fix]解决LazyListAnimateScroller会在滚动时触发Recompose的问题
cy745 Jan 23, 2024
f314201
[modify]完善歌词显示效果,完善翻译的显示和隐藏过渡效果,避免在Draw的过程中创建对象
cy745 Jan 23, 2024
1e2cc57
[modify]优化歌词行的宽度测量逻辑,由外部处理后传入,添加参数控制点击回调的启用,添加onPositionReset回调
cy745 Jan 23, 2024
d0116c8
[modify]补全翻译的显示隐藏控制,添加点击歌词或歌词定时重置时退出歌词滚动模式的逻辑
cy745 Jan 23, 2024
68cf29b
[modify]优化PlayingToolbar结构,完善其extraContent的显示隐藏动画过渡效果
cy745 Jan 23, 2024
3503939
[modify]调整PlayingToolbar结构,部分参数改为从父级传入,添加点击回调
cy745 Jan 23, 2024
c596b92
[modify]解决偶现拖动歌词后无法恢复自动滚动的问题
cy745 Jan 23, 2024
a536fc9
[modify]添加Modifier扩展,用于为Modifier添加条件控制逻辑
cy745 Jan 23, 2024
d3807fe
[modify]为RecyclerView添加滚动到顶部的事件监听处理逻辑,添加paddingBottom
cy745 Jan 23, 2024
4f77c9b
[modify]完善isUserTouchEnable控制逻辑
cy745 Jan 23, 2024
b281b6f
[modify]完善歌词显示效果的控制逻辑
cy745 Jan 23, 2024
00e095d
[modify]完善点击顶部Toolbar使recyclerView滚动至顶部的逻辑
cy745 Jan 23, 2024
0d1f164
[modify]优化currentItemIndex的获取逻辑,解决歌词无默认值的问题
cy745 Jan 23, 2024
c146af3
[modify]移除过时代码
cy745 Jan 24, 2024
c1a255c
[modify]启用K2编译器
cy745 Jan 24, 2024
d53bb81
[modify]优化代码
cy745 Jan 24, 2024
2c8a2f3
[modify]调整优化导航实现逻辑,解决手机与平板模式间切换时复杂的导航栈的变换问题
cy745 Jan 24, 2024
d6bfbe5
[modify]移除LMediaRepository
cy745 Jan 24, 2024
1b72918
[modify]优化代码
cy745 Jan 25, 2024
ac8be2f
[modify]完善最高帧率运行配置
cy745 Jan 26, 2024
8a639cc
[create]创建DialogWrapper,初步实现自定义的Dialog显示和回调的逻辑
cy745 Jan 30, 2024
5ea6407
[modify]初步引入DialogWrapper,调整歌词页的功能选项展示效果
cy745 Jan 30, 2024
ff02043
[modify]转移DialogWrapper至component模块
cy745 Jan 30, 2024
ce2d2bc
[modify]优化组件使用减少嵌套,使用Dialog替代部分ScreenBarComponent实现,优化组件显示的效果
cy745 Jan 30, 2024
2f23248
[modify]完善SettingsScreen显示效果
cy745 Jan 30, 2024
6c4c7fc
[modify]简化重写列表的排序逻辑,取消进阶组合排序的方式,转为预设排序逻辑结合固定变换的方式,优化组件显示效果
cy745 Jan 30, 2024
8c89256
[modify]ValueCat添加控制启用的参数和逻辑
cy745 Jan 31, 2024
5a2a027
[modify]避免重复数据存入歌单
cy745 Jan 31, 2024
02dd5cf
[modify]避免重复创建ViewModel
cy745 Jan 31, 2024
f06615f
[modify]完善LyricSentence的参数更新效果
cy745 Jan 31, 2024
0d9a4c1
[modify]完善插件元素在列表中的显示效果,避免元素越界
cy745 Jan 31, 2024
4ea2a16
[modify]添加Alpha版本别名
cy745 Jan 31, 2024
d7bd4c4
[modify]更新lmedia
cy745 Jan 31, 2024
827afff
[modify]移除extension相关模块
cy745 Jan 31, 2024
b037f9b
[modify]移除extension相关注册代码
cy745 Jan 31, 2024
bc7b5b8
[modify]恢复HomeScreen基础结构,插件转为普通Composable函数
cy745 Jan 31, 2024
492bce9
[modify]移除无用代码
cy745 Jan 31, 2024
407d389
[modify]转移settings相关组件至component模块
cy745 Jan 31, 2024
21301c4
[modify]扩展Settings相关组件
cy745 Jan 31, 2024
4948fc6
[modify]添加单击播放,双击替换播放列表并播放的逻辑
cy745 Jan 31, 2024
f3a5a7b
[modify]优化代码结构,添加重启和退出按钮
cy745 Feb 1, 2024
d1223c3
[modify]添加并实现日志打包分享逻辑
cy745 Feb 2, 2024
2c85223
[modify]LogUtil配置打印Log至文件
cy745 Feb 2, 2024
0ab906a
[modify]移除无用代码
cy745 Feb 2, 2024
e805ee9
[modify]引入Android-AOP框架
cy745 Feb 2, 2024
e73e095
[modify]完善AOP配置,将所有的android.util.Log调用重定向至LogUtils输出
cy745 Feb 2, 2024
d7f842f
[modify]引入blockcanary卡顿检测框架
cy745 Feb 2, 2024
8308e37
[modify]优化代码
cy745 Feb 2, 2024
55abe84
[modify]完善Dialog相关逻辑
cy745 Feb 2, 2024
07db1f5
[modify]完善重启逻辑,未捕获异常记录到日志中
cy745 Feb 2, 2024
2d6d5fc
[modify]添加歌曲播放完后才执行暂停的逻辑
cy745 Feb 2, 2024
427da67
[modify]优化SettingSwitcher,添加自定义样式参数
cy745 Feb 2, 2024
5349f19
[modify]优化完善SettingSwitcher
cy745 Feb 2, 2024
9e020fa
[modify]解决clickable的indication效果溢出边界的问题
cy745 Feb 2, 2024
df95bf9
[modify]引入WheelPickerCompose组件
cy745 Feb 2, 2024
addc278
[modify]调整LyricViewActionDialog样式
cy745 Feb 2, 2024
bea517e
[modify]添加fixContent固定槽位
cy745 Feb 2, 2024
75d0701
[modify]初步实现SleepTimer基础逻辑与界面样式
cy745 Feb 2, 2024
b02e4bd
[modify]添加定时关闭Dialog入口按钮
cy745 Feb 2, 2024
9b96b10
[modify]修正预设值配置
cy745 Feb 2, 2024
3824b06
[modify]捕获处理openFileDescriptor产生的FileNotFoundException
cy745 Feb 3, 2024
d1e8e7c
[modify]更新lmedia
cy745 Feb 3, 2024
4009f3d
[modify]优化Coil配置,使用Mapper替代继承Fetcher的方式
cy745 Feb 3, 2024
0fa8e49
[modify]完善排除指定目录元素的过滤器逻辑
cy745 Feb 3, 2024
824af6c
[modify]引入AndroidFilePicker组件
cy745 Feb 3, 2024
fa67afb
[modify]解决歌词未铺全页面的问题
cy745 Feb 3, 2024
5b62e5b
[modify]更新lmedia
cy745 Feb 3, 2024
715e210
[modify]初步实现默认文件管理器无法唤起时替换AndroidFilePicker进行选择的逻辑
cy745 Feb 3, 2024
1d5a549
[modify]仿照BaseSp封装BaseKV,实现快速存储数据的基础逻辑
cy745 Feb 4, 2024
dc799e8
[modify]初始化FastKV实例
cy745 Feb 4, 2024
2b2fc57
[modify]完善自动更新控制逻辑,修正set方法的调用
cy745 Feb 4, 2024
fcacdf5
[modify]添加并实现KVMapItem,调整identityKey构建逻辑,针对超长id进行压缩,短id直接保存
cy745 Feb 4, 2024
828b969
[modify]创建LPlaylistFastEncoder,完善LPlaylist的序列化过程
cy745 Feb 4, 2024
63aa8ed
[modify]创建PlaylistKV替代PlaylistSp
cy745 Feb 4, 2024
f36ded0
[modify]优化PlaylistRepository,减少重复逻辑代码,降低与kv组件的耦合度
cy745 Feb 4, 2024
a92e52e
[modify]适配修改过的playlistRepo,优化歌单页的拖拽排序更新逻辑
cy745 Feb 4, 2024
d376486
[modify]修正Key错误,提取固定不变的变量
cy745 Feb 4, 2024
a196ca6
[modify]调整state的默认取值,避免每次启动都需要写一次后才能获取到正确数据
cy745 Feb 4, 2024
5356008
[modify]调整FastEncoder注册方式,注册LPlaylistFastEncoder
cy745 Feb 4, 2024
36efda8
[modify]更新lmedia
cy745 Feb 4, 2024
da166ee
[modify]暂时停用针对androidx.annotation.Keep的keep条件,该条件导致混淆后的包大小增长过大,且对其开关对…
cy745 Feb 4, 2024
f026479
[modify]暂时关闭K2编译器
cy745 Feb 4, 2024
493b716
[modify]分享日志的逻辑转移至CrashHelper,提供给外部调用
cy745 Feb 4, 2024
340112c
[modify]添加日志分享按钮
cy745 Feb 4, 2024
17f5731
[create]创建显示隐藏控制的Modifier,用于监听用户按下和抬起控制元素的即时显示和延时隐藏
cy745 Feb 5, 2024
863603e
[modify]使用rememberUpdatedState确保协程中获取到的数据始终为最新,避免外部的state变化后参数函数仍然指向旧…
cy745 Feb 5, 2024
32a7b7b
[modify]提取LongClickableTextButton的部分绘制逻辑独立成ProgressTextButton
cy745 Feb 5, 2024
574024d
[modify]扩展LazyListScrollToHelper的方法调用
cy745 Feb 5, 2024
358d341
[modify]添加控制歌词页展开时显示隐藏组件的开关至LyricViewActionDialog
cy745 Feb 5, 2024
ff7922c
[modify]去除取消滑块,避免fling事件触发进入歌词滚动模式,初步完善组件隐藏控制逻辑
cy745 Feb 5, 2024
ede257c
[modify]添加退出歌词滚动模式按钮,完善无歌词时的提示,解决长按进入歌词滚动模式后无拖动旧无法延时退出的问题
cy745 Feb 5, 2024
2394aed
[modify]解决歌词在fling的过程中退出滚动模式导致父级被拖动的问题
cy745 Feb 6, 2024
ae343be
[modify]调整完善按钮颜色
cy745 Feb 6, 2024
f485f9e
[modify]compose版本更新
cy745 Feb 7, 2024
d2e0b00
[modify]完善播放页中组件的返回键响应逻辑
cy745 Feb 7, 2024
700b82d
[modify]解决歌词不更新文本的问题
cy745 Feb 7, 2024
c6019b0
[modify]调整DynamicScreen注册actions的实现逻辑,解决快速切换页面时出现的组件丢失问题
cy745 Feb 8, 2024
156d55a
[modify]添加拦截第一次点击事件的逻辑,用于实现元素显示后才能触发点击事件的功能
cy745 Feb 8, 2024
9d3b858
[modify]添加筛除重复元素的逻辑,避免传递给LazyList的key出现重复
cy745 Feb 8, 2024
a282661
[modify]为进度条长按后滑动切换播放模式的功能添加振动反馈
cy745 Feb 13, 2024
a427d02
[modify]调整拖拽切换贴边锚地的阈值
cy745 Feb 15, 2024
812ce57
[modify]调整回调进度的逻辑,当处于非拖动中状态时返回实时的准确进度值
cy745 Feb 17, 2024
f603c8c
[modify]绑定Seekbar与LyricLayout,使进度条可联动歌词滚动
cy745 Feb 17, 2024
89bfa5a
[modify]优化代码结构,解决滚动时offset计算错误的问题
cy745 Feb 17, 2024
454e2cd
[modify]解决抬起后再次点击无法取消隐藏计时的问题
cy745 Feb 18, 2024
6bf75b3
[modify]创建DynamicTipsHost,初步完善DynamicTips的显示效果
cy745 Feb 26, 2024
479dde2
[modify]替换DynamicTips调用至DynamicTipsHost
cy745 Feb 26, 2024
be80479
[modify]解决点击后无法取消隐藏倒计时的问题
cy745 Feb 26, 2024
31ff838
[modify]去除无用代码
cy745 Feb 26, 2024
df0b9f0
[modify]优化排序面板的边框显示效果
cy745 Feb 26, 2024
652eb4e
[modify]去除无用代码
cy745 Feb 26, 2024
1f5fb17
[modify]优化完善代码
cy745 Feb 26, 2024
8e14eb5
[modify]解决GitHub Action无法递归拉取子仓库的代码的问题
cy745 Feb 28, 2024
d6fa2ae
[modify]替换use为try-catch结构,避免MediaMetadataRetriever的NewApi的lint规则报错
cy745 Feb 28, 2024
0230ef9
[modify]关闭lint检查
cy745 Mar 2, 2024
0ea953e
[modify]更新lmedia
cy745 Mar 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
clean: true
fetch-depth: 1
lfs: false
submodules: true
submodules: recursive

- name: Create the Keystore from Secrets to Sign the App
env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,4 @@ lint/outputs/
lint/tmp/
# lint/reports/
/app/mapping.txt
/extension/mapping.txt
141 changes: 79 additions & 62 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,54 @@ import java.util.TimeZone

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("kotlin-android")
kotlin("android")
id("com.google.devtools.ksp")
alias(libs.plugins.flyjingfish.aop)
}

val keystoreProps = rootProject.file("keystore.properties")
.takeIf { it.exists() }
?.let { Properties().apply { load(FileInputStream(it)) } }

fun releaseTime(): String = SimpleDateFormat("yyyyMMdd_HHmmZ").run {
fun releaseTime(pattern: String = "yyyyMMdd_HHmmZ"): String = SimpleDateFormat(pattern).run {
timeZone = TimeZone.getTimeZone("Asia/Shanghai")
format(Date())
}


androidAopConfig {
enabled = true
debug = true

// include 'com.flyjingfish'
// cutInfoJson = true
// increment = true
// 移除kotlin相关,减少编译错误并提升速度
exclude(
"kotlin.jvm",
"kotlin.internal",
"kotlinx.coroutines.internal",
"kotlinx.coroutines.android"
)
}

android {
namespace = "com.lalilu"
compileSdk = 34
compileSdk = AndroidConfig.COMPILE_SDK_VERSION

defaultConfig {
applicationId = "com.lalilu.lmusic"
minSdk = 21
targetSdk = 34
minSdk = AndroidConfig.MIN_SDK_VERSION
targetSdk = AndroidConfig.TARGET_SDK_VERSION
versionCode = 42
versionName = "1.5.4"

vectorDrawables {
useSupportLibrary = true
}
ksp {
arg("room.schemaLocation", "$projectDir/schemas")
}
}

buildFeatures {
Expand Down Expand Up @@ -72,6 +91,35 @@ android {
resValue("string", "app_name", "@string/app_name_release")
}

create("alpha") {
isMinifyEnabled = true
isShrinkResources = true

versionNameSuffix = "-ALPHA_${releaseTime()}"
applicationIdSuffix = ".alpha"
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = kotlin.runCatching { signingConfigs["release"] }.getOrNull()
?: signingConfigs.getByName("debug")
resValue("string", "app_name", "@string/app_name_alpha")

matchingFallbacks.add("release")
matchingFallbacks.add("debug")

ndk {
// mips (已弃用)
// mips64 (已弃用)
// armeabi (已弃用)
// armeabi-v7a (需要支持—现在最流行的处理器架构)
// arm64-v8a (需要支持—armeabi-v7a的新版本)
// x86 (可选, 设备非常有限,可以用于模拟器debugging)
// x86_64 (可选, 设备非常有限,可以用于模拟器debugging)
// abiFilters.addAll(setOf("armeabi-v7a"))
}
}

create("beta") {
isMinifyEnabled = true
isShrinkResources = true
Expand All @@ -91,80 +139,48 @@ android {
}

debug {
versionNameSuffix = "-DEBUG_${releaseTime()}"
versionNameSuffix = "-DEBUG_${releaseTime("yyyyMMdd")}"
applicationIdSuffix = ".debug"
signingConfig = signingConfigs.getByName("debug")

resValue("string", "app_name", "@string/app_name_debug")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
isCoreLibraryDesugaringEnabled = true
}
kotlinOptions {
jvmTarget = "17"
jvmTarget = "1.8"
}
composeOptions {
kotlinCompilerExtensionVersion = findProperty("compose_compiler_version").toString()
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
kotlinCompilerExtensionVersion = libs.compose.compiler.get().version.toString()
}

lint {
disable += "Instantiatable"
abortOnError = false
}
}

dependencies {
implementation(project(":common"))
implementation(project(":ui"))
implementation(project(":lplayer"))
implementation(project(":crash"))
implementation(project(":component"))
implementation(project(":lplaylist"))
implementation(project(":lhistory"))
implementation(project(":lartist"))
implementation(project(":lalbum"))
implementation(project(":ldictionary"))

// compose
implementation("androidx.compose.compiler:compiler:${findProperty("compose_compiler_version")}")
implementation(platform("androidx.compose:compose-bom:${findProperty("compose_bom_version")}"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-util")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-viewbinding")
implementation("androidx.compose.foundation:foundation")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.material3:material3-window-size-class")
implementation("androidx.compose.runtime:runtime-livedata")
implementation("androidx.compose.material:material")
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-tooling-preview")

// compose-destinations
implementation("io.github.raamcosta.compose-destinations:animations-core:${findProperty("compose_destinations_version")}")
ksp("io.github.raamcosta.compose-destinations:ksp:${findProperty("compose_destinations_version")}")

// accompanist
// https://google.github.io/accompanist
implementation("com.google.accompanist:accompanist-systemuicontroller:${findProperty("accompanist_version")}")
implementation("com.google.accompanist:accompanist-flowlayout:${findProperty("accompanist_version")}")
implementation("com.google.accompanist:accompanist-permissions:${findProperty("accompanist_version")}")

// lottie
// https://mvnrepository.com/artifact/com.airbnb.android/lottie-compose
implementation("com.airbnb.android:lottie-compose:5.2.0")
implementation(libs.room.ktx)
implementation(libs.room.runtime)
ksp(libs.room.compiler)

// https://github.com/Block-Network/StatusBarApiExample
// 墨 · 状态栏歌词 API
implementation("com.github.577fkj:StatusBarApiExample:v2.0")

// https://github.com/aclassen/ComposeReorderable
// https://mvnrepository.com/artifact/org.burnoutcrew.composereorderable/reorderable
// Apache-2.0 license
// Compose的拖动排序组件
implementation("org.burnoutcrew.composereorderable:reorderable:0.9.6")
// 0.9.2对LazyColumn的ContentPadding存在偏移的bug

// https://gitee.com/simplepeng/SpiderMan
// Apache-2.0 License
// 闪退崩溃日志捕获库
Expand All @@ -190,14 +206,15 @@ dependencies {
// https://github.com/cy745/EdgeTranslucent
// Undeclared License
// 实现边沿渐变透明
implementation("com.github.cy745:EdgeTranslucent:8c25866a14")
// implementation("com.github.cy745:EdgeTranslucent:8c25866a14")

implementation("com.github.commandiron:WheelPickerCompose:1.1.11")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")

// implementation("com.github.angcyo:DslAdapter:6.0.1")
debugImplementation("com.github.getActivity:Logcat:11.8")
// debugImplementation("io.github.knight-zxw:blockcanary:0.0.5")
// debugImplementation("io.github.knight-zxw:blockcanary-ui:0.0.5")

implementation("androidx.activity:activity-compose:1.7.2")
implementation("androidx.navigation:navigation-compose:${findProperty("navigation_version")}")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:${findProperty("lifecycle_version")}")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:${findProperty("lifecycle_version")}")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:${findProperty("lifecycle_version")}")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:${findProperty("lifecycle_version")}")
implementation(libs.bundles.flyjingfish.aop)
ksp(libs.flyjingfish.aop.ksp)
}
63 changes: 20 additions & 43 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -20,55 +20,32 @@
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# retrofit 使用的所有bean都不可以混淆
-keep class com.lalilu.lmusic.apis.bean.** { *; }

# jaudiotagger release打包后可能会出现MP3格式无法读取歌词的问题
-keep class org.jaudiotagger.tag.** { *; }

-dontwarn org.jaudiotagger.**
-dontwarn java.awt.Graphics2D
-dontwarn java.awt.Image
-dontwarn java.awt.geom.AffineTransform
-dontwarn java.awt.image.BufferedImage
-dontwarn java.awt.image.ImageObserver
-dontwarn java.awt.image.RenderedImage
-dontwarn javax.imageio.ImageIO
-dontwarn javax.imageio.ImageWriter
-dontwarn javax.imageio.stream.ImageInputStream
-dontwarn javax.imageio.stream.ImageOutputStream

-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE

-dontwarn org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
-dontwarn org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
-dontwarn org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages$Extension

# Gson反射所需混淆规则
-keep class com.google.gson.reflect.TypeToken
-keep class * extends com.google.gson.reflect.TypeToken
-keep public class * implements java.lang.reflect.Type

-keep class com.simple.spiderman.** { *; }
-keepnames class com.simple.spiderman.** { *; }
-keep public class * extends android.app.Activity
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
# AndroidAop必备混淆规则
#-keep class * { @androidx.annotation.Keep <fields>; }
-keepnames class * implements com.flyjingfish.android_aop_annotation.base.BasePointCut
-keepnames class * implements com.flyjingfish.android_aop_annotation.base.MatchClassMethod
-keep class * implements com.flyjingfish.android_aop_annotation.base.BasePointCut{
public <init>();
}
-keep class * implements com.flyjingfish.android_aop_annotation.base.MatchClassMethod{
public <init>();
}
# support
-keep public class * extends android.support.annotation.** { *; }
# androidx
-keep public class * extends androidx.annotation.** { *; }
-keep public class * extends androidx.core.content.FileProvider

# AndroidFilePicker相关
-dontwarn com.bumptech.glide.Glide
-dontwarn com.bumptech.glide.RequestBuilder
-dontwarn com.bumptech.glide.RequestManager
-dontwarn com.bumptech.glide.request.BaseRequestOptions
-dontwarn com.bumptech.glide.request.target.ViewTarget
-dontwarn com.squareup.picasso.Picasso
-dontwarn com.squareup.picasso.RequestCreator

# 墨 · 状态栏歌词
-keep class StatusBarLyric.API.StatusBarLyric { *; }

-printmapping mapping.txt
-printmapping ../mapping.txt
5 changes: 5 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-feature
android:glEsVersion="0x00030000"
android:required="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
Expand Down Expand Up @@ -31,6 +35,7 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Music"
android:usesCleartextTraffic="true"
tools:ignore="AllowBackup,UnusedAttribute">

<meta-data
Expand Down
Loading
Loading