diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/FabColumn.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/FabColumn.kt index 69601ece1..1a0715ef2 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/FabColumn.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/FabColumn.kt @@ -1,18 +1,97 @@ -package com.vitorpamplona.amethyst.buttons +package com.vitorpamplona.amethyst.ui.buttons -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.runtime.Composable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.OutlinedButton +import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp +import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.service.NostrAccountDataSource +import com.vitorpamplona.amethyst.ui.actions.NewPollView +import com.vitorpamplona.amethyst.ui.actions.NewPostView @Composable fun FabColumn(account: Account) { + var isOpen by remember { + mutableStateOf(false) + } + var wantsToPoll by remember { + mutableStateOf(false) + } + var wantsToPost by remember { + mutableStateOf(false) + } + Column() { - NewPollButton(account) - Spacer(modifier = Modifier.height(20.dp)) - NewNoteButton(account) + if (isOpen) { + OutlinedButton( + onClick = { + wantsToPoll = true + isOpen = false + }, + modifier = Modifier.size(45.dp), + shape = CircleShape, + colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.primary), + contentPadding = PaddingValues(0.dp) + ) { + Icon( + painter = painterResource(R.drawable.ic_poll), + null, + modifier = Modifier.size(26.dp), + tint = Color.White + ) + } + + Spacer(modifier = Modifier.height(20.dp)) + + OutlinedButton( + onClick = { + wantsToPost = true + isOpen = false + }, + modifier = Modifier.size(45.dp), + shape = CircleShape, + colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.primary), + contentPadding = PaddingValues(0.dp) + ) { + Icon( + painter = painterResource(R.drawable.ic_lists), + null, + modifier = Modifier.size(26.dp), + tint = Color.White + ) + } + + Spacer(modifier = Modifier.height(20.dp)) + } + OutlinedButton( + onClick = { isOpen = !isOpen }, + modifier = Modifier.size(55.dp), + shape = CircleShape, + colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.primary), + contentPadding = PaddingValues(0.dp) + ) { + Icon( + painter = painterResource(R.drawable.ic_compose), + null, + modifier = Modifier.size(26.dp), + tint = Color.White + ) + } + } + + if (wantsToPost) { + NewPostView({ wantsToPost = false }, account = NostrAccountDataSource.account) + } + + if (wantsToPoll) { + NewPollView({ wantsToPoll = false }, account = account) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt deleted file mode 100644 index b16534b28..000000000 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.vitorpamplona.amethyst.buttons - -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Icon -import androidx.compose.material.MaterialTheme -import androidx.compose.material.OutlinedButton -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.model.Account -import com.vitorpamplona.amethyst.ui.actions.NewPostView - -@Composable -fun NewNoteButton(account: Account) { - var wantsToPost by remember { - mutableStateOf(false) - } - - if (wantsToPost) { - NewPostView({ wantsToPost = false }, account = account) - } - - OutlinedButton( - onClick = { wantsToPost = true }, - modifier = Modifier.size(55.dp), - shape = CircleShape, - colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.primary), - contentPadding = PaddingValues(0.dp) - ) { - Icon( - painter = painterResource(R.drawable.ic_compose), - null, - modifier = Modifier.size(26.dp), - tint = Color.White - ) - } -} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewPollButton.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewPollButton.kt deleted file mode 100644 index 5169f5b1e..000000000 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewPollButton.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.vitorpamplona.amethyst.buttons - -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.ButtonDefaults -import androidx.compose.material.Icon -import androidx.compose.material.MaterialTheme -import androidx.compose.material.OutlinedButton -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.unit.dp -import com.vitorpamplona.amethyst.R -import com.vitorpamplona.amethyst.model.Account -import com.vitorpamplona.amethyst.ui.actions.NewPollView - -@Composable -fun NewPollButton(account: Account) { - var wantsToPoll by remember { - mutableStateOf(false) - } - - if (wantsToPoll) { - NewPollView({ wantsToPoll = false }, account = account) - } - - OutlinedButton( - onClick = { wantsToPoll = true }, - modifier = Modifier.size(55.dp), - shape = CircleShape, - colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.primary), - contentPadding = PaddingValues(0.dp) - ) { - Icon( - painter = painterResource(R.drawable.ic_poll), - null, - modifier = Modifier.size(26.dp), - tint = Color.White - ) - } -} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt index 46b55c10c..c56340d8f 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt @@ -13,8 +13,8 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.navigation.NavHostController import androidx.navigation.compose.rememberNavController -import com.vitorpamplona.amethyst.buttons.FabColumn import com.vitorpamplona.amethyst.buttons.NewChannelButton +import com.vitorpamplona.amethyst.ui.buttons.FabColumn import com.vitorpamplona.amethyst.ui.navigation.* import com.vitorpamplona.amethyst.ui.screen.AccountState import com.vitorpamplona.amethyst.ui.screen.AccountStateViewModel diff --git a/app/src/main/res/drawable-hdpi/ic_poll.png b/app/src/main/res/drawable-hdpi/ic_poll.png index ff8df419e..560b632f2 100644 Binary files a/app/src/main/res/drawable-hdpi/ic_poll.png and b/app/src/main/res/drawable-hdpi/ic_poll.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_poll.png b/app/src/main/res/drawable-mdpi/ic_poll.png index a0282c9f3..6a27ba8a7 100644 Binary files a/app/src/main/res/drawable-mdpi/ic_poll.png and b/app/src/main/res/drawable-mdpi/ic_poll.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_poll.png b/app/src/main/res/drawable-xhdpi/ic_poll.png index 83191fa48..02383e0b9 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_poll.png and b/app/src/main/res/drawable-xhdpi/ic_poll.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_poll.png b/app/src/main/res/drawable-xxhdpi/ic_poll.png index b792c3025..3dae6049d 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_poll.png and b/app/src/main/res/drawable-xxhdpi/ic_poll.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_poll.png b/app/src/main/res/drawable-xxxhdpi/ic_poll.png index 826e1afef..b0a5d1034 100644 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_poll.png and b/app/src/main/res/drawable-xxxhdpi/ic_poll.png differ