|
1 | 1 | package org.succlz123.app.acfun.ui.main.tab.item |
2 | 2 |
|
3 | 3 | import androidx.compose.animation.AnimatedVisibility |
4 | | -import androidx.compose.foundation.background |
5 | | -import androidx.compose.foundation.border |
6 | 4 | import androidx.compose.foundation.layout.* |
7 | 5 | import androidx.compose.foundation.lazy.grid.* |
8 | | -import androidx.compose.foundation.shape.RoundedCornerShape |
9 | 6 | import androidx.compose.material.MaterialTheme |
10 | 7 | import androidx.compose.material.Text |
11 | 8 | import androidx.compose.runtime.Composable |
12 | 9 | import androidx.compose.runtime.remember |
13 | 10 | import androidx.compose.runtime.rememberCoroutineScope |
14 | 11 | import androidx.compose.ui.Alignment |
15 | 12 | import androidx.compose.ui.Modifier |
16 | | -import androidx.compose.ui.draw.clip |
17 | | -import androidx.compose.ui.graphics.Color |
18 | 13 | import androidx.compose.ui.unit.dp |
19 | 14 | import kotlinx.coroutines.launch |
20 | 15 | import org.succlz123.app.acfun.Manifest |
21 | | -import org.succlz123.app.acfun.api.bean.AcContent |
22 | 16 | import org.succlz123.app.acfun.api.bean.HomeRecommendItem |
23 | 17 | import org.succlz123.app.acfun.base.AcGo2TopButton |
24 | 18 | import org.succlz123.app.acfun.base.AcRefreshButton |
25 | 19 | import org.succlz123.app.acfun.base.LoadingView |
26 | | -import org.succlz123.app.acfun.theme.ColorResource |
27 | 20 | import org.succlz123.app.acfun.ui.main.vm.HomeAreaViewModel |
28 | 21 | import org.succlz123.lib.click.noRippleClickable |
29 | | -import org.succlz123.lib.image.AsyncImageUrlMultiPlatform |
30 | 22 | import org.succlz123.lib.screen.LocalScreenNavigator |
31 | 23 | import org.succlz123.lib.screen.ScreenArgs |
32 | 24 | import org.succlz123.lib.screen.operation.PushOptions |
@@ -77,10 +69,13 @@ fun MainHomeContentItem( |
77 | 69 |
|
78 | 70 | @Composable |
79 | 71 | private fun MainHomeContentItemSuccess( |
80 | | - modifier: Modifier, content: ArrayList<HomeRecommendItem>, |
81 | | - changeTitleSelectIfExist: (Int) -> Unit, selectTitleIfExist: () -> Int, |
| 72 | + modifier: Modifier, |
| 73 | + content: ArrayList<HomeRecommendItem>, |
| 74 | + changeTitleSelectIfExist: (Int) -> Unit, |
| 75 | + selectTitleIfExist: () -> Int, |
82 | 76 | isExpandedScreen: Boolean, |
83 | | - refreshClick: () -> Unit, onLoadMore: (() -> Unit)? |
| 77 | + refreshClick: () -> Unit, |
| 78 | + onLoadMore: (() -> Unit)? |
84 | 79 | ) { |
85 | 80 | val screenNavigator = LocalScreenNavigator.current |
86 | 81 | val gridCount = if (isExpandedScreen) { |
@@ -136,62 +131,7 @@ private fun MainHomeContentItemSuccess( |
136 | 131 | } |
137 | 132 | }, item.titleStr.orEmpty()) |
138 | 133 | } else { |
139 | | - Box( |
140 | | - modifier = Modifier.background(Color.White).clip(MaterialTheme.shapes.medium) |
141 | | - .border(1.dp, ColorResource.border, MaterialTheme.shapes.medium).fillMaxWidth() |
142 | | - ) { |
143 | | - Column(modifier = Modifier.noRippleClickable { |
144 | | - if (item.item?.type == AcContent.TYPE_LIVE) { |
145 | | - screenNavigator.push( |
146 | | - Manifest.LiveStreamPlayerScreen, |
147 | | - screenKey = item.item?.url, |
148 | | - arguments = ScreenArgs.putValue("KEY_ID", item.item?.url) |
149 | | - .putValue("KEY_TITLE", item.item?.title) |
150 | | - ) |
151 | | - } else if (item.item?.type == AcContent.TYPE_VIDEO) { |
152 | | - screenNavigator.push( |
153 | | - Manifest.VideoDetailScreen, |
154 | | - screenKey = item.item?.url, |
155 | | - arguments = ScreenArgs.putValue("KEY_AC_CONTENT", item.item) |
156 | | - ) |
157 | | - } |
158 | | - }.fillMaxSize()) { |
159 | | - Box( |
160 | | - modifier = Modifier.fillMaxWidth().aspectRatio(1.82f) |
161 | | - .background(ColorResource.background), contentAlignment = Alignment.BottomEnd |
162 | | - ) { |
163 | | - AsyncImageUrlMultiPlatform( |
164 | | - url = item.item?.img.orEmpty(), modifier = Modifier.fillMaxSize() |
165 | | - ) |
166 | | - if (item.item?.view != null && item.item?.type == AcContent.TYPE_LIVE) { |
167 | | - Text( |
168 | | - modifier = Modifier.padding(6.dp) |
169 | | - .background(ColorResource.black60, RoundedCornerShape(4.dp)).padding(6.dp), |
170 | | - text = "在线:${item.item?.view.toString()}", |
171 | | - maxLines = 1, |
172 | | - color = Color.White, |
173 | | - style = MaterialTheme.typography.overline |
174 | | - ) |
175 | | - } |
176 | | - } |
177 | | - Text( |
178 | | - modifier = Modifier.padding(12.dp, 12.dp, 12.dp, 0.dp), |
179 | | - text = item.item?.title.orEmpty() + "\n", |
180 | | - maxLines = 2, |
181 | | - style = MaterialTheme.typography.h6 |
182 | | - ) |
183 | | - Row { |
184 | | - Spacer(modifier = Modifier.weight(1f)) |
185 | | - Text( |
186 | | - modifier = Modifier.padding(12.dp, 6.dp), |
187 | | - text = item.item?.up.orEmpty(), |
188 | | - color = ColorResource.subText, |
189 | | - maxLines = 1, |
190 | | - style = MaterialTheme.typography.body2 |
191 | | - ) |
192 | | - } |
193 | | - } |
194 | | - } |
| 134 | + MainHomeContentInfo(item) |
195 | 135 | } |
196 | 136 | } |
197 | 137 | } |
|
0 commit comments