mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-15 00:37: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.activity.compose.setContent
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
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.Pager
|
||||||
import androidx.paging.PagingConfig
|
import androidx.paging.PagingConfig
|
||||||
import androidx.paging.compose.collectAsLazyPagingItems
|
import androidx.paging.compose.collectAsLazyPagingItems
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource
|
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.android.ui.NetworkPosts
|
||||||
import dev.msfjarvis.claw.api.LobstersApi
|
import dev.msfjarvis.claw.api.LobstersApi
|
||||||
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
import dev.msfjarvis.claw.common.theme.LobstersTheme
|
||||||
|
@ -18,18 +23,27 @@ import javax.inject.Inject
|
||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
@Inject lateinit var api: LobstersApi
|
@Inject lateinit var api: LobstersApi
|
||||||
|
|
||||||
@Inject lateinit var urlLauncher: UrlLauncher
|
@Inject lateinit var urlLauncher: UrlLauncher
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
val pager = Pager(PagingConfig(20)) { LobstersPagingSource(api::getHottestPosts) }
|
val pager = Pager(PagingConfig(20)) { LobstersPagingSource(api::getHottestPosts) }
|
||||||
setContent {
|
setContent {
|
||||||
|
val scaffoldState = rememberScaffoldState()
|
||||||
LobstersTheme(darkTheme = isSystemInDarkTheme()) {
|
LobstersTheme(darkTheme = isSystemInDarkTheme()) {
|
||||||
val items = pager.flow.collectAsLazyPagingItems()
|
val items = pager.flow.collectAsLazyPagingItems()
|
||||||
NetworkPosts(
|
Scaffold(
|
||||||
items = items,
|
scaffoldState = scaffoldState,
|
||||||
urlLauncher = urlLauncher,
|
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