Skip to content

Commit 8fc0892

Browse files
Expressive material3 (#43)
* Add shortcut icon preference and update related functionality * feat: bump libraries * feat: add material 3 expressive design * feat: add material 3 expressive design
1 parent 459c497 commit 8fc0892

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

app/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ dependencies {
102102
ktlint(libs.ktlint)
103103
implementation("dev.chrisbanes.haze:haze:1.6.9")
104104
implementation("dev.chrisbanes.haze:haze-materials:1.6.9")
105-
106105
}
107106

108107
kotlinter {

app/src/main/java/com/yogeshpaliyal/deepr/ui/screens/Home.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ import androidx.compose.foundation.shape.RoundedCornerShape
2626
import androidx.compose.material3.BottomAppBarDefaults
2727
import androidx.compose.material3.Button
2828
import androidx.compose.material3.Card
29+
import androidx.compose.material3.ContainedLoadingIndicator
2930
import androidx.compose.material3.DropdownMenu
3031
import androidx.compose.material3.DropdownMenuItem
3132
import androidx.compose.material3.ExperimentalMaterial3Api
33+
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
3234
import androidx.compose.material3.Icon
3335
import androidx.compose.material3.IconButton
3436
import androidx.compose.material3.MaterialTheme
@@ -345,6 +347,7 @@ fun FilterMenu(
345347
}
346348
}
347349

350+
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
348351
@Composable
349352
fun Content(
350353
hazeState: HazeState,
@@ -353,6 +356,16 @@ fun Content(
353356
viewModel: AccountViewModel = koinViewModel(),
354357
) {
355358
val accounts by viewModel.accounts.collectAsState()
359+
360+
if (accounts == null) {
361+
Column(
362+
modifier = modifier.fillMaxSize(),
363+
horizontalAlignment = Alignment.CenterHorizontally,
364+
verticalArrangement = Arrangement.Center,
365+
) { ContainedLoadingIndicator() }
366+
return
367+
}
368+
356369
Column(modifier.fillMaxSize()) {
357370
val context = LocalContext.current
358371
var showShortcutDialog by remember { mutableStateOf<Deepr?>(null) }
@@ -391,7 +404,7 @@ fun Content(
391404
.hazeSource(state = hazeState)
392405
.padding(8.dp),
393406
contentPaddingValues = contentPaddingValues,
394-
accounts = accounts,
407+
accounts = accounts!!,
395408
onItemClick = {
396409
viewModel.incrementOpenedCount(it.id)
397410
openDeeplink(context, it.link)

app/src/main/java/com/yogeshpaliyal/deepr/viewmodel/AccountViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class AccountViewModel(
5353
val importResultFlow = importResultChannel.receiveAsFlow()
5454

5555
@OptIn(ExperimentalCoroutinesApi::class)
56-
val accounts: StateFlow<List<Deepr>> =
56+
val accounts: StateFlow<List<Deepr>?> =
5757
combine(searchQuery, sortOrder) { query, order ->
5858
Pair(query, order)
5959
}.flatMapLatest { (query, order) ->
@@ -72,7 +72,7 @@ class AccountViewModel(
7272
SortOrder.OPENED_DESC -> deeprQueries.searchDeeprByOpenedCountDesc(query)
7373
}.asFlow().mapToList(viewModelScope.coroutineContext)
7474
}
75-
}.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList())
75+
}.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), null)
7676

7777
fun search(query: String) {
7878
searchQuery.value = query

gradle/libs.versions.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dataStore = "1.1.7"
2020
accompanist = "0.37.3"
2121
opencsv = "5.12.0"
2222
zxing = "4.3.0"
23+
material3 = "1.5.0-alpha01"
2324

2425
[libraries]
2526
android-driver = { module = "app.cash.sqldelight:android-driver", version.ref = "androidDriver" }
@@ -39,7 +40,7 @@ androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
3940
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
4041
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
4142
androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
42-
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
43+
androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" }
4344
koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin-bom" }
4445
koin-core = { module = "io.insert-koin:koin-core" }
4546
koin-android = { module = "io.insert-koin:koin-android" }

0 commit comments

Comments
 (0)