Skip to content

Commit

Permalink
Merge pull request #12 from mende273/refactor
Browse files Browse the repository at this point in the history
refactoring
  • Loading branch information
mende273 authored Mar 7, 2023
2 parents 5409f6b + 682210a commit 08cde83
Showing 1 changed file with 38 additions and 13 deletions.
51 changes: 38 additions & 13 deletions app/src/main/java/com/jumrukovski/quotescompose/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.jumrukovski.quotescompose
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.annotation.DrawableRes
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
Expand All @@ -21,7 +22,10 @@ class MainActivity : ComponentActivity() {

@OptIn(ExperimentalMaterial3Api::class)
@Composable
private fun Toolbar() {
private fun Toolbar(
topMenuItems: List<MainActivityMenuItem>,
onActionClick: (MainActivityMenuItem) -> Unit = {}
) {
TopAppBar(
modifier = Modifier.background(MaterialTheme.colorScheme.PrimaryBackgroundColor),
title = { Text(stringResource(R.string.app_name)) },
Expand All @@ -33,21 +37,23 @@ class MainActivity : ComponentActivity() {
actionIconContentColor = MaterialTheme.colorScheme.PrimaryTextColor
),
actions = {
IconButton(onClick = {
//todo action icon clicked
}) {
Icon(
painter = painterResource(id = R.drawable.baseline_search_24),
contentDescription = stringResource(id = R.string.action_search),
tint = MaterialTheme.colorScheme.onSurface
)
topMenuItems.forEach {
IconButton(onClick = { onActionClick(it) }) {
Icon(
painter = painterResource(id = R.drawable.baseline_search_24),
contentDescription = stringResource(id = R.string.action_search),
tint = MaterialTheme.colorScheme.onSurface
)
}
}
}
)
}

data class MainActivityMenuItem(val title: String, @DrawableRes val drawable: Int)

@Composable
private fun BottomNavigationBar() {
private fun BottomNavigationBar(onItemClick: (BottomMenuItem) -> Unit = {}) {
val selectedIndex = remember { mutableStateOf(0) }

NavigationBar(
Expand All @@ -59,7 +65,10 @@ class MainActivity : ComponentActivity() {
BottomMenuItem.values().forEachIndexed { index, menuItem ->
NavigationBarItem(
selected = selectedIndex.value == index,
onClick = { selectedIndex.value = index },
onClick = {
selectedIndex.value = index
onItemClick(BottomMenuItem.values()[index])
},
label = { Text(text = stringResource(id = menuItem.titleTextId)) },
enabled = true,
icon = {
Expand All @@ -84,10 +93,22 @@ class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

val topMenuItems = ArrayList<MainActivityMenuItem>()
topMenuItems.add(
MainActivityMenuItem(
resources.getString(R.string.action_search),
R.drawable.baseline_search_24
)
)
setContent {
QuotesComposeTheme {
Scaffold(
topBar = { Toolbar() },
topBar = {
Toolbar(topMenuItems) { menuItem ->
//todo handle top menu item
}
},
content = { padding ->
Box(
modifier = Modifier
Expand All @@ -98,7 +119,11 @@ class MainActivity : ComponentActivity() {
//todo content details
}
},
bottomBar = { BottomNavigationBar() })
bottomBar = {
BottomNavigationBar { menuItem ->
//todo handle bottom menu item click
}
})
}
}
}
Expand Down

0 comments on commit 08cde83

Please sign in to comment.