mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
android: make it look more like an actual app
This commit is contained in:
parent
c992bdc370
commit
f856aeb6f5
2 changed files with 45 additions and 4 deletions
|
@ -4,11 +4,16 @@ import android.os.Bundle
|
|||
import androidx.activity.compose.setContent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.material.rememberScaffoldState
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.paging.Pager
|
||||
import androidx.paging.PagingConfig
|
||||
import androidx.paging.compose.collectAsLazyPagingItems
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource
|
||||
import dev.msfjarvis.claw.android.ui.ClawAppBar
|
||||
import dev.msfjarvis.claw.android.ui.NetworkPosts
|
||||
import dev.msfjarvis.claw.api.LobstersApi
|
||||
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
||||
|
@ -18,18 +23,27 @@ import javax.inject.Inject
|
|||
@AndroidEntryPoint
|
||||
class MainActivity : AppCompatActivity() {
|
||||
@Inject lateinit var api: LobstersApi
|
||||
|
||||
@Inject lateinit var urlLauncher: UrlLauncher
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
val pager = Pager(PagingConfig(20)) { LobstersPagingSource(api::getHottestPosts) }
|
||||
setContent {
|
||||
val scaffoldState = rememberScaffoldState()
|
||||
LobstersTheme(darkTheme = isSystemInDarkTheme()) {
|
||||
val items = pager.flow.collectAsLazyPagingItems()
|
||||
NetworkPosts(
|
||||
items = items,
|
||||
urlLauncher = urlLauncher,
|
||||
)
|
||||
Scaffold(
|
||||
scaffoldState = scaffoldState,
|
||||
topBar = { ClawAppBar() },
|
||||
modifier = Modifier,
|
||||
) { padding ->
|
||||
NetworkPosts(
|
||||
items = items,
|
||||
urlLauncher = urlLauncher,
|
||||
modifier = Modifier.padding(padding),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package dev.msfjarvis.claw.android.ui
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.material.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import dev.msfjarvis.claw.android.R
|
||||
|
||||
@Composable
|
||||
fun ClawAppBar(
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
TopAppBar(
|
||||
title = {
|
||||
Text(
|
||||
text = stringResource(R.string.app_name),
|
||||
fontWeight = FontWeight.Bold,
|
||||
modifier = Modifier.padding(horizontal = 16.dp),
|
||||
)
|
||||
},
|
||||
modifier = Modifier.then(modifier),
|
||||
)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue