Skip to content

Commit 1337c7c

Browse files
committed
update
1 parent f0d8ed3 commit 1337c7c

File tree

7 files changed

+34
-32
lines changed

7 files changed

+34
-32
lines changed

app/src/main/java/com/wzq/jd/compose/app/data/remote/CustomHttpClient.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class CustomHttpClient {
2727
followRedirects(true)
2828
}
2929
addInterceptor(HttpLoggingInterceptor().apply {
30-
level = HttpLoggingInterceptor.Level.BODY
30+
level = HttpLoggingInterceptor.Level.HEADERS
3131
})
3232

3333
}

app/src/main/java/com/wzq/jd/compose/app/data/remote/RemoteDataRepo.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import io.ktor.client.call.body
99
import io.ktor.client.request.forms.submitForm
1010
import io.ktor.client.request.get
1111
import io.ktor.client.request.parameter
12-
import io.ktor.client.request.post
13-
import io.ktor.client.request.setBody
1412
import io.ktor.http.parametersOf
1513

1614
/**
@@ -46,9 +44,4 @@ class RemoteDataRepo(
4644
).body<NetResult<PagingResult<ArticleItem>>>()
4745
}
4846

49-
suspend fun test() = client.doRequest<Unit> {
50-
this.post("") {
51-
setBody(parametersOf("a", "b"))
52-
}
53-
}
5447
}

app/src/main/java/com/wzq/jd/compose/app/page/PageState.kt

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,9 @@ package com.wzq.jd.compose.app.page
44
* create by wzq on 2023/12/5
55
*
66
*/
7-
sealed class PageState {
8-
data object None : PageState()
9-
data object Loading : PageState()
10-
class Success(private val data: Any?) : PageState() {
11-
@Suppress("UNCHECKED_CAST")
12-
fun <T> get() = data as? T
13-
}
14-
15-
class Failure(val exception: Throwable? = null, val tag: Any? = null) : PageState()
7+
sealed class PageState<out T> {
8+
data object None : PageState<Nothing>()
9+
data object Loading : PageState<Nothing>()
10+
class Success<out T>(val data: T) : PageState<T>()
11+
class Failure(val exception: Throwable? = null, val tag: Any? = null) : PageState<Nothing>()
1612
}

app/src/main/java/com/wzq/jd/compose/app/page/home/HomeIndexPage.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
package com.wzq.jd.compose.app.page.home
22

3+
import androidx.compose.foundation.layout.Box
34
import androidx.compose.foundation.layout.Row
5+
import androidx.compose.foundation.layout.fillMaxSize
46
import androidx.compose.foundation.layout.fillMaxWidth
57
import androidx.compose.foundation.layout.padding
68
import androidx.compose.foundation.lazy.LazyColumn
79
import androidx.compose.foundation.lazy.items
810
import androidx.compose.material3.Card
11+
import androidx.compose.material3.CircularProgressIndicator
912
import androidx.compose.material3.ExperimentalMaterial3Api
1013
import androidx.compose.material3.MaterialTheme
1114
import androidx.compose.material3.Text
1215
import androidx.compose.runtime.Composable
16+
import androidx.compose.ui.Alignment
1317
import androidx.compose.ui.Modifier
1418
import androidx.compose.ui.graphics.toArgb
1519
import androidx.compose.ui.unit.dp
1620
import com.wzq.jd.compose.app.data.model.ArticleItem
21+
import com.wzq.jd.compose.app.page.PageState
1722
import com.wzq.jd.compose.app.ui.widget.HtmlText
1823
import io.ktor.http.encodeURLPath
1924

@@ -22,12 +27,23 @@ import io.ktor.http.encodeURLPath
2227
*
2328
*/
2429
@Composable
25-
fun HomeIndexPage(articleList: List<ArticleItem>, onItemClick: (String) -> Unit) {
26-
LazyColumn(content = {
27-
items(articleList) {
28-
ArticleItemPage(itemData = it, onItemClick)
30+
fun HomeIndexPage(state: PageState<List<ArticleItem>>, onItemClick: (String) -> Unit) {
31+
when(state) {
32+
PageState.Loading -> {
33+
Box(modifier = Modifier.fillMaxSize()) {
34+
CircularProgressIndicator(modifier = Modifier.align(Alignment.Center))
35+
}
2936
}
30-
})
37+
is PageState.Success -> {
38+
LazyColumn(content = {
39+
items(state.data) {
40+
ArticleItemPage(itemData = it, onItemClick)
41+
}
42+
})
43+
}
44+
else -> {}
45+
}
46+
3147
}
3248

3349
@OptIn(ExperimentalMaterial3Api::class)

app/src/main/java/com/wzq/jd/compose/app/page/home/HomeScreen.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ fun HomeScreen(viewModel: HomeViewModel, navActions: NavActions) {
5656
) { currentPagerNum ->
5757
when (currentPagerNum) {
5858
0 -> HomeIndexPage(
59-
articleList = viewModel.homeList,
59+
state = viewModel.indexState.value,
6060
onItemClick = { navActions.toWebScreen(it) })
6161

6262
1 -> HomeProjectPage(
@@ -70,7 +70,6 @@ fun HomeScreen(viewModel: HomeViewModel, navActions: NavActions) {
7070
else -> throw Exception("todo")
7171
}
7272
}
73-
7473
}
7574
}
7675

app/src/main/java/com/wzq/jd/compose/app/page/home/HomeViewModel.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.wzq.jd.compose.app.page.home
22

33
import androidx.compose.runtime.mutableStateListOf
4+
import androidx.compose.runtime.mutableStateOf
45
import androidx.lifecycle.ViewModel
56
import androidx.lifecycle.viewModelScope
67
import com.wzq.jd.compose.app.data.DataRepos
78
import com.wzq.jd.compose.app.data.model.ArticleItem
89
import com.wzq.jd.compose.app.data.model.Categories
10+
import com.wzq.jd.compose.app.page.PageState
911
import kotlinx.coroutines.launch
1012

1113
/**
@@ -14,7 +16,7 @@ import kotlinx.coroutines.launch
1416
*/
1517
class HomeViewModel : ViewModel() {
1618

17-
val homeList = mutableStateListOf<ArticleItem>()
19+
val indexState = mutableStateOf<PageState<List<ArticleItem>>>(PageState.Loading)
1820
val projectList = mutableStateListOf<ArticleItem>()
1921
val categories = mutableStateListOf<Categories>()
2022

@@ -26,10 +28,9 @@ class HomeViewModel : ViewModel() {
2628

2729
private fun getArticleList(pageNum: Int = 0) {
2830
viewModelScope.launch {
29-
DataRepos.remoteRepo.getArticleList(pageNum).onSuccess {
30-
homeList.clear()
31-
homeList.addAll(it.data.listData)
32-
}
31+
DataRepos.remoteRepo.getArticleList(pageNum)
32+
.onSuccess { indexState.value = PageState.Success(it.data.listData) }
33+
.onFailure { indexState.value = PageState.Failure(it) }
3334
}
3435
}
3536

app/src/main/java/com/wzq/jd/compose/app/page/search/SearchViewModel.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ class SearchViewModel : ViewModel() {
2828

2929
init {
3030
getHotWords()
31-
viewModelScope.launch {
32-
// NetworkUtil.remoteRepo.test()
33-
}
3431
}
3532

3633
private fun getHotWords() {

0 commit comments

Comments
 (0)