Skip to content

Commit 248a3ae

Browse files
committed
[fix|build] Fix the height issue of article item image; update dependencies
1 parent aa6337c commit 248a3ae

File tree

12 files changed

+58
-48
lines changed

12 files changed

+58
-48
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ android {
2222
minSdk = 24
2323
targetSdk = 35
2424
versionCode = 24
25-
versionName = "2.1-beta09"
25+
versionName = "2.1-beta10"
2626

2727
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2828

app/src/main/java/com/skyd/anivu/model/bean/VideoBean.kt renamed to app/src/main/java/com/skyd/anivu/model/bean/MediaBean.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.skyd.anivu.ext.getMimeType
55
import com.skyd.anivu.util.fileicon.getFileIcon
66
import java.io.File
77

8-
data class VideoBean(
8+
data class MediaBean(
99
val displayName: String? = null,
1010
val file: File,
1111
) : BaseBean {

app/src/main/java/com/skyd/anivu/model/repository/MediaRepository.kt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import androidx.compose.ui.util.fastFirstOrNull
44
import com.skyd.anivu.base.BaseRepository
55
import com.skyd.anivu.model.bean.MediaGroupBean
66
import com.skyd.anivu.model.bean.MediaGroupBean.Companion.isDefaultGroup
7-
import com.skyd.anivu.model.bean.VideoBean
7+
import com.skyd.anivu.model.bean.MediaBean
88
import kotlinx.coroutines.Dispatchers
99
import kotlinx.coroutines.flow.Flow
1010
import kotlinx.coroutines.flow.flow
@@ -37,7 +37,7 @@ class MediaRepository @Inject constructor(
3737
}.flowOn(Dispatchers.IO)
3838
}
3939

40-
fun requestFiles(uriPath: String, group: MediaGroupBean?): Flow<List<VideoBean>> {
40+
fun requestFiles(uriPath: String, group: MediaGroupBean?): Flow<List<MediaBean>> {
4141
return flow {
4242
val groupJsonFile = File(uriPath, GROUP_JSON_NAME)
4343
val mediaGroupJson = parseGroupJson(groupJsonFile)
@@ -46,7 +46,7 @@ class MediaRepository @Inject constructor(
4646
File(uriPath).listFiles().orEmpty().toMutableList().filter { it.exists() }
4747
val videoList = if (group == null) {
4848
allFiles.map {
49-
VideoBean(
49+
MediaBean(
5050
displayName = null, // TODO
5151
file = it,
5252
)
@@ -56,7 +56,7 @@ class MediaRepository @Inject constructor(
5656
allFiles.filter { file ->
5757
filesInGroup.fastFirstOrNull { it.fileName == file.name } == null
5858
}.map { file ->
59-
VideoBean(
59+
MediaBean(
6060
displayName = null, // TODO
6161
file = file,
6262
)
@@ -65,7 +65,7 @@ class MediaRepository @Inject constructor(
6565
filesInGroup.filter { it.groupName == group.name }.mapNotNull {
6666
val file = File(uriPath, it.fileName)
6767
if (file.exists()) {
68-
VideoBean(
68+
MediaBean(
6969
displayName = null, // TODO
7070
file = file,
7171
)
@@ -81,13 +81,13 @@ class MediaRepository @Inject constructor(
8181
}.flowOn(Dispatchers.IO)
8282
}
8383

84-
fun requestDelete(file: File): Flow<Boolean> {
84+
fun deleteFile(file: File): Flow<Boolean> {
8585
return flow {
8686
emit(file.deleteRecursively())
8787
}.flowOn(Dispatchers.IO)
8888
}
8989

90-
fun requestCreateGroup(uriPath: String, group: MediaGroupBean): Flow<Unit> = flow {
90+
fun createGroup(uriPath: String, group: MediaGroupBean): Flow<Unit> = flow {
9191
if (group.isDefaultGroup()) {
9292
emit(Unit)
9393
return@flow
@@ -103,7 +103,7 @@ class MediaRepository @Inject constructor(
103103
emit(Unit)
104104
}.flowOn(Dispatchers.IO)
105105

106-
fun requestDeleteGroup(uriPath: String, group: MediaGroupBean): Flow<Int> = flow {
106+
fun deleteGroup(uriPath: String, group: MediaGroupBean): Flow<Int> = flow {
107107
if (group.isDefaultGroup()) {
108108
emit(0)
109109
return@flow
@@ -128,7 +128,7 @@ class MediaRepository @Inject constructor(
128128
emit(newFileToGroups.count() - fileToGroups.count())
129129
}.flowOn(Dispatchers.IO)
130130

131-
fun requestRenameGroup(
131+
fun renameGroup(
132132
uriPath: String,
133133
group: MediaGroupBean,
134134
newName: String,
@@ -162,25 +162,25 @@ class MediaRepository @Inject constructor(
162162
emit(MediaGroupBean(name = newName))
163163
}.flowOn(Dispatchers.IO)
164164

165-
fun requestChangeMediaGroup(
165+
fun changeMediaGroup(
166166
uriPath: String,
167-
videoBean: VideoBean,
167+
mediaBean: MediaBean,
168168
group: MediaGroupBean,
169169
): Flow<Unit> = flow {
170170
val groupJsonFile = File(uriPath, GROUP_JSON_NAME)
171171
val mediaGroupJson = parseGroupJson(groupJsonFile)!!
172172
val fileToGroups = mediaGroupJson.files.toSet()
173-
val file = fileToGroups.firstOrNull { it.fileName == videoBean.file.name }
173+
val file = fileToGroups.firstOrNull { it.fileName == mediaBean.file.name }
174174

175175
val newFileToGroups = (if (file != null) fileToGroups - file else fileToGroups)
176176
.toMutableList()
177177
.apply {
178178
if (!group.isDefaultGroup()) {
179179
add(
180180
FileToGroup(
181-
fileName = videoBean.file.name,
181+
fileName = mediaBean.file.name,
182182
groupName = group.name,
183-
isFile = videoBean.file.isFile,
183+
isFile = mediaBean.file.isFile,
184184
)
185185
)
186186
}
@@ -190,7 +190,7 @@ class MediaRepository @Inject constructor(
190190
emit(Unit)
191191
}.flowOn(Dispatchers.IO)
192192

193-
fun requestMoveFilesToGroup(
193+
fun moveFilesToGroup(
194194
path: String,
195195
from: MediaGroupBean,
196196
to: MediaGroupBean

app/src/main/java/com/skyd/anivu/ui/screen/article/Article1Item.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.Column
99
import androidx.compose.foundation.layout.IntrinsicSize
1010
import androidx.compose.foundation.layout.Row
1111
import androidx.compose.foundation.layout.Spacer
12-
import androidx.compose.foundation.layout.fillMaxHeight
1312
import androidx.compose.foundation.layout.fillMaxSize
1413
import androidx.compose.foundation.layout.fillMaxWidth
1514
import androidx.compose.foundation.layout.height
@@ -54,9 +53,11 @@ import androidx.compose.ui.Modifier
5453
import androidx.compose.ui.draw.clip
5554
import androidx.compose.ui.graphics.vector.rememberVectorPainter
5655
import androidx.compose.ui.layout.ContentScale
56+
import androidx.compose.ui.layout.layout
5757
import androidx.compose.ui.platform.LocalContext
5858
import androidx.compose.ui.res.stringResource
5959
import androidx.compose.ui.text.style.TextOverflow
60+
import androidx.compose.ui.unit.Constraints
6061
import androidx.compose.ui.unit.Dp
6162
import androidx.compose.ui.unit.dp
6263
import androidx.navigation.NavController
@@ -301,8 +302,17 @@ private fun Article1ItemContent(
301302
AniVuImage(
302303
modifier = Modifier
303304
.width(100.dp)
304-
.fillMaxHeight()
305-
.heightIn(min = 70.dp, max = 120.dp),
305+
.heightIn(min = 70.dp, max = 120.dp)
306+
.layout { measurable, constraints ->
307+
if (constraints.maxHeight == Constraints.Infinity) {
308+
layout(0, 0) {}
309+
} else {
310+
val placeable = measurable.measure(constraints)
311+
layout(placeable.width, placeable.height) {
312+
placeable.place(0, 0)
313+
}
314+
}
315+
},
306316
model = article.image,
307317
contentScale = ContentScale.Crop,
308318
)

app/src/main/java/com/skyd/anivu/ui/screen/media/MediaIntent.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package com.skyd.anivu.ui.screen.media
22

33
import com.skyd.anivu.base.mvi.MviIntent
44
import com.skyd.anivu.model.bean.MediaGroupBean
5-
import com.skyd.anivu.model.bean.VideoBean
5+
import com.skyd.anivu.model.bean.MediaBean
66

77
sealed interface MediaIntent : MviIntent {
88
data class Init(val path: String?) : MediaIntent
99
data class Refresh(val path: String?) : MediaIntent
1010
data class ChangeMediaGroup(
1111
val path: String?,
12-
val videoBean: VideoBean,
12+
val mediaBean: MediaBean,
1313
val group: MediaGroupBean
1414
) : MediaIntent
1515

app/src/main/java/com/skyd/anivu/ui/screen/media/MediaViewModel.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class MediaViewModel @Inject constructor(
9494
filterIsInstance<MediaIntent.ChangeMediaGroup>().filterNot {
9595
it.path.isNullOrBlank()
9696
}.flatMapConcat { intent ->
97-
mediaRepo.requestChangeMediaGroup(intent.path!!, intent.videoBean, intent.group)
97+
mediaRepo.changeMediaGroup(intent.path!!, intent.mediaBean, intent.group)
9898
.map {
9999
MediaPartialStateChange.ChangeMediaGroup.Success
100100
}.startWith(MediaPartialStateChange.LoadingDialog.Show)
@@ -103,31 +103,31 @@ class MediaViewModel @Inject constructor(
103103
filterIsInstance<MediaIntent.DeleteGroup>().filterNot {
104104
it.path.isNullOrBlank()
105105
}.flatMapConcat { intent ->
106-
mediaRepo.requestDeleteGroup(intent.path!!, intent.group).map {
106+
mediaRepo.deleteGroup(intent.path!!, intent.group).map {
107107
MediaPartialStateChange.DeleteGroup.Success(intent.group)
108108
}.startWith(MediaPartialStateChange.LoadingDialog.Show)
109109
.catchMap { MediaPartialStateChange.DeleteGroup.Failed(it.message.toString()) }
110110
},
111111
filterIsInstance<MediaIntent.CreateGroup>().filterNot {
112112
it.path.isNullOrBlank()
113113
}.flatMapConcat { intent ->
114-
mediaRepo.requestCreateGroup(intent.path!!, intent.group).map {
114+
mediaRepo.createGroup(intent.path!!, intent.group).map {
115115
MediaPartialStateChange.CreateGroup.Success
116116
}.startWith(MediaPartialStateChange.LoadingDialog.Show)
117117
.catchMap { MediaPartialStateChange.CreateGroup.Failed(it.message.toString()) }
118118
},
119119
filterIsInstance<MediaIntent.MoveFilesToGroup>().filterNot {
120120
it.path.isNullOrBlank()
121121
}.flatMapConcat { intent ->
122-
mediaRepo.requestMoveFilesToGroup(intent.path!!, intent.from, intent.to).map {
122+
mediaRepo.moveFilesToGroup(intent.path!!, intent.from, intent.to).map {
123123
MediaPartialStateChange.MoveFilesToGroup.Success
124124
}.startWith(MediaPartialStateChange.LoadingDialog.Show)
125125
.catchMap { MediaPartialStateChange.MoveFilesToGroup.Failed(it.message.toString()) }
126126
},
127127
filterIsInstance<MediaIntent.RenameGroup>().filterNot {
128128
it.path.isNullOrBlank()
129129
}.flatMapConcat { intent ->
130-
mediaRepo.requestRenameGroup(intent.path!!, intent.group, intent.newName).map {
130+
mediaRepo.renameGroup(intent.path!!, intent.group, intent.newName).map {
131131
MediaPartialStateChange.EditGroup.Success(it)
132132
}.startWith(MediaPartialStateChange.LoadingDialog.Show)
133133
.catchMap { MediaPartialStateChange.EditGroup.Failed(it.message.toString()) }

app/src/main/java/com/skyd/anivu/ui/screen/media/list/Media1Item.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,19 @@ import com.skyd.anivu.ext.openWith
4949
import com.skyd.anivu.ext.share
5050
import com.skyd.anivu.ext.toDateTimeString
5151
import com.skyd.anivu.ext.toUri
52-
import com.skyd.anivu.model.bean.VideoBean
52+
import com.skyd.anivu.model.bean.MediaBean
5353
import com.skyd.anivu.ui.component.AniVuImage
5454
import com.skyd.anivu.ui.component.rememberAniVuImageLoader
5555
import com.skyd.anivu.ui.local.LocalMediaShowThumbnail
5656
import java.util.Locale
5757

5858
@Composable
5959
fun Media1Item(
60-
data: VideoBean,
61-
onPlay: (VideoBean) -> Unit,
62-
onOpenDir: (VideoBean) -> Unit,
63-
onRemove: (VideoBean) -> Unit,
64-
onLongClick: ((VideoBean) -> Unit)? = null,
60+
data: MediaBean,
61+
onPlay: (MediaBean) -> Unit,
62+
onOpenDir: (MediaBean) -> Unit,
63+
onRemove: (MediaBean) -> Unit,
64+
onLongClick: ((MediaBean) -> Unit)? = null,
6565
) {
6666
val context = LocalContext.current
6767
var expandMenu by rememberSaveable { mutableStateOf(false) }

app/src/main/java/com/skyd/anivu/ui/screen/media/list/MediaList.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import com.skyd.anivu.ext.activity
3636
import com.skyd.anivu.ext.plus
3737
import com.skyd.anivu.ext.toUri
3838
import com.skyd.anivu.model.bean.MediaGroupBean
39-
import com.skyd.anivu.model.bean.VideoBean
39+
import com.skyd.anivu.model.bean.MediaBean
4040
import com.skyd.anivu.ui.activity.PlayActivity
4141
import com.skyd.anivu.ui.component.CircularProgressPlaceholder
4242
import com.skyd.anivu.ui.component.EmptyPlaceholder
@@ -48,7 +48,7 @@ class GroupInfo(
4848
val group: MediaGroupBean,
4949
val version: Long, // For update, if version changed, MediaList will refresh media list
5050
val onCreateGroup: (MediaGroupBean) -> Unit,
51-
val onMoveFileToGroup: (VideoBean, MediaGroupBean) -> Unit,
51+
val onMoveFileToGroup: (MediaBean, MediaGroupBean) -> Unit,
5252
)
5353

5454
@Composable
@@ -147,16 +147,16 @@ internal fun MediaList(
147147
@Composable
148148
private fun MediaList(
149149
modifier: Modifier = Modifier,
150-
list: List<VideoBean>,
150+
list: List<MediaBean>,
151151
groups: List<MediaGroupBean>,
152152
groupInfo: GroupInfo?,
153-
onPlay: (VideoBean) -> Unit,
154-
onOpenDir: (VideoBean) -> Unit,
155-
onRemove: (VideoBean) -> Unit,
153+
onPlay: (MediaBean) -> Unit,
154+
onOpenDir: (MediaBean) -> Unit,
155+
onRemove: (MediaBean) -> Unit,
156156
contentPadding: PaddingValues = PaddingValues(0.dp),
157157
) {
158158
var openEditMediaDialog by rememberSaveable {
159-
mutableStateOf<VideoBean?>(null, policy = referentialEqualityPolicy())
159+
mutableStateOf<MediaBean?>(null, policy = referentialEqualityPolicy())
160160
}
161161
var openCreateGroupDialog by rememberSaveable { mutableStateOf(false) }
162162
var createGroupDialogGroup by rememberSaveable { mutableStateOf("") }

app/src/main/java/com/skyd/anivu/ui/screen/media/list/MediaListPartialStateChange.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.skyd.anivu.ui.screen.media.list
22

33
import androidx.compose.ui.util.fastFirstOrNull
44
import com.skyd.anivu.model.bean.MediaGroupBean
5-
import com.skyd.anivu.model.bean.VideoBean
5+
import com.skyd.anivu.model.bean.MediaBean
66
import java.io.File
77

88

@@ -42,7 +42,7 @@ internal sealed interface MediaListPartialStateChange {
4242
}
4343
}
4444

45-
data class Success(val list: List<VideoBean>, val groups: List<MediaGroupBean>) :
45+
data class Success(val list: List<MediaBean>, val groups: List<MediaGroupBean>) :
4646
MediaListResult
4747

4848
data class Failed(val msg: String) : MediaListResult

app/src/main/java/com/skyd/anivu/ui/screen/media/list/MediaListState.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.skyd.anivu.ui.screen.media.list
22

33
import com.skyd.anivu.base.mvi.MviViewState
44
import com.skyd.anivu.model.bean.MediaGroupBean
5-
import com.skyd.anivu.model.bean.VideoBean
5+
import com.skyd.anivu.model.bean.MediaBean
66

77
data class MediaListState(
88
val listState: ListState,
@@ -19,7 +19,7 @@ data class MediaListState(
1919
}
2020

2121
sealed class ListState(open val loading: Boolean) {
22-
data class Success(val list: List<VideoBean>, override val loading: Boolean = false) :
22+
data class Success(val list: List<MediaBean>, override val loading: Boolean = false) :
2323
ListState(loading)
2424

2525
data class Init(override val loading: Boolean = false) : ListState(loading)

app/src/main/java/com/skyd/anivu/ui/screen/media/list/MediaListViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class MediaListViewModel @Inject constructor(
7777
.catchMap { MediaListPartialStateChange.MediaListResult.Failed(it.message.toString()) }
7878
},
7979
filterIsInstance<MediaListIntent.DeleteFile>().flatMapConcat { intent ->
80-
mediaRepo.requestDelete(intent.file).map {
80+
mediaRepo.deleteFile(intent.file).map {
8181
MediaListPartialStateChange.DeleteFileResult.Success(file = intent.file)
8282
}.startWith(MediaListPartialStateChange.LoadingDialog.Show)
8383
.catchMap { MediaListPartialStateChange.DeleteFileResult.Failed(it.message.toString()) }

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[versions]
22
adaptive = "1.0.0"
3-
coil = "3.0.2"
3+
coil = "3.0.3"
44
hilt = "2.52"
5-
libtorrent4j = "2.1.0-31"
5+
libtorrent4j = "2.1.0-35"
66
composeMaterial = "1.7.5"
77
composeMaterial3 = "1.4.0-alpha04"
88
okhttp3 = "4.12.0"
@@ -70,7 +70,7 @@ ceau-opmlparser = { module = "be.ceau:opml-parser", version = "3.1.0" }
7070

7171
readability4j = { module = "net.dankito.readability4j:readability4j", version = "1.0.8" }
7272

73-
reorderable = { module = "sh.calvin.reorderable:reorderable", version = "2.3.3" }
73+
reorderable = { module = "sh.calvin.reorderable:reorderable", version = "2.4.0" }
7474

7575
libtorrent4j-arm64 = { module = "org.libtorrent4j:libtorrent4j-android-arm64", version.ref = "libtorrent4j" }
7676
libtorrent4j-arm = { module = "org.libtorrent4j:libtorrent4j-android-arm", version.ref = "libtorrent4j" }

0 commit comments

Comments
 (0)