|
@@ -18,10 +18,8 @@ import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.unit.Dp
|
|
import androidx.compose.ui.unit.Dp
|
|
|
import androidx.core.view.WindowCompat
|
|
import androidx.core.view.WindowCompat
|
|
|
import com.sirekanian.acf.ext.app
|
|
import com.sirekanian.acf.ext.app
|
|
|
-import com.sirekanian.acf.ui.MainContent
|
|
|
|
|
-import com.sirekanian.acf.ui.MainFab
|
|
|
|
|
-import com.sirekanian.acf.ui.MainProgress
|
|
|
|
|
-import com.sirekanian.acf.ui.MainToolbar
|
|
|
|
|
|
|
+import com.sirekanian.acf.ext.isCyrillicResources
|
|
|
|
|
+import com.sirekanian.acf.ui.*
|
|
|
import com.sirekanian.acf.ui.theme.WarmongrTheme
|
|
import com.sirekanian.acf.ui.theme.WarmongrTheme
|
|
|
|
|
|
|
|
class MainActivity : ComponentActivity() {
|
|
class MainActivity : ComponentActivity() {
|
|
@@ -29,7 +27,9 @@ class MainActivity : ComponentActivity() {
|
|
|
super.onCreate(savedInstanceState)
|
|
super.onCreate(savedInstanceState)
|
|
|
WindowCompat.setDecorFitsSystemWindows(window, false)
|
|
WindowCompat.setDecorFitsSystemWindows(window, false)
|
|
|
setContent {
|
|
setContent {
|
|
|
- val state = remember { MainState() }
|
|
|
|
|
|
|
+ val coroutineScope = rememberCoroutineScope()
|
|
|
|
|
+ val isCyrillic = isCyrillicResources()
|
|
|
|
|
+ val state = remember { MainState(coroutineScope, isCyrillic) }
|
|
|
val presenter = remember { createPresenter(app(), state) }
|
|
val presenter = remember { createPresenter(app(), state) }
|
|
|
val data by presenter.observeData().collectAsState(listOf())
|
|
val data by presenter.observeData().collectAsState(listOf())
|
|
|
val hasData by derivedStateOf { data.isNotEmpty() }
|
|
val hasData by derivedStateOf { data.isNotEmpty() }
|
|
@@ -43,6 +43,7 @@ class MainActivity : ComponentActivity() {
|
|
|
.background(MaterialTheme.colors.background)
|
|
.background(MaterialTheme.colors.background)
|
|
|
) {
|
|
) {
|
|
|
MainLayout(
|
|
MainLayout(
|
|
|
|
|
+ state = state,
|
|
|
toolbar = { insets ->
|
|
toolbar = { insets ->
|
|
|
MainToolbar(insets, state.search)
|
|
MainToolbar(insets, state.search)
|
|
|
MainProgress(insets, state.progress)
|
|
MainProgress(insets, state.progress)
|
|
@@ -61,6 +62,7 @@ class MainActivity : ComponentActivity() {
|
|
|
|
|
|
|
|
@Composable
|
|
@Composable
|
|
|
fun MainLayout(
|
|
fun MainLayout(
|
|
|
|
|
+ state: MainState,
|
|
|
toolbar: @Composable (PaddingValues) -> Unit,
|
|
toolbar: @Composable (PaddingValues) -> Unit,
|
|
|
toolbarElevation: Dp,
|
|
toolbarElevation: Dp,
|
|
|
content: @Composable (PaddingValues) -> Unit,
|
|
content: @Composable (PaddingValues) -> Unit,
|
|
@@ -68,15 +70,17 @@ fun MainLayout(
|
|
|
fab: @Composable () -> Unit,
|
|
fab: @Composable () -> Unit,
|
|
|
fabVisible: Boolean,
|
|
fabVisible: Boolean,
|
|
|
) {
|
|
) {
|
|
|
- AnimatedVisibility(contentVisible, enter = fadeIn(), exit = fadeOut()) {
|
|
|
|
|
- content(WindowInsets.systemBars.asPaddingValues())
|
|
|
|
|
- }
|
|
|
|
|
- Surface(Modifier.fillMaxWidth(), elevation = toolbarElevation) {
|
|
|
|
|
- toolbar(WindowInsets.statusBars.asPaddingValues())
|
|
|
|
|
- }
|
|
|
|
|
- AnimatedVisibility(fabVisible, enter = fadeIn(), exit = fadeOut()) {
|
|
|
|
|
- BottomBox(Modifier.padding(D.fabPadding)) {
|
|
|
|
|
- fab()
|
|
|
|
|
|
|
+ MainBottomSheet(dialogState = state.dialog) {
|
|
|
|
|
+ AnimatedVisibility(contentVisible, enter = fadeIn(), exit = fadeOut()) {
|
|
|
|
|
+ content(WindowInsets.systemBars.asPaddingValues())
|
|
|
|
|
+ }
|
|
|
|
|
+ Surface(Modifier.fillMaxWidth(), elevation = toolbarElevation) {
|
|
|
|
|
+ toolbar(WindowInsets.statusBars.asPaddingValues())
|
|
|
|
|
+ }
|
|
|
|
|
+ AnimatedVisibility(fabVisible, enter = fadeIn(), exit = fadeOut()) {
|
|
|
|
|
+ BottomBox(Modifier.padding(D.fabPadding)) {
|
|
|
|
|
+ fab()
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (MaterialTheme.colors.isLight) {
|
|
if (MaterialTheme.colors.isLight) {
|