Merge pull request #360 from greenart7c3/claude/fix-bunker-request-buttons-JWM1G

Fix accept/reject buttons not appearing in BunkerConnectRequestScreen
This commit is contained in:
greenart7c3
2026-03-27 17:25:47 -03:00
committed by GitHub
4 changed files with 55 additions and 33 deletions
@@ -2,6 +2,7 @@ package com.greenart7c3.nostrsigner.ui
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
@@ -33,6 +34,7 @@ import kotlinx.collections.immutable.ImmutableList
fun IncomingRequestScreen( fun IncomingRequestScreen(
horizontalPadding: Dp, horizontalPadding: Dp,
modifier: Modifier, modifier: Modifier,
scaffoldPadding: PaddingValues,
intents: ImmutableList<IntentData>, intents: ImmutableList<IntentData>,
bunkerRequests: ImmutableList<AmberBunkerRequest>, bunkerRequests: ImmutableList<AmberBunkerRequest>,
packageName: String?, packageName: String?,
@@ -78,6 +80,7 @@ fun IncomingRequestScreen(
BunkerSingleEventHomeScreen( BunkerSingleEventHomeScreen(
horizontalPadding = horizontalPadding, horizontalPadding = horizontalPadding,
modifier = modifier, modifier = modifier,
scaffoldPadding = scaffoldPadding,
bunkerRequest = bunkerRequests.first(), bunkerRequest = bunkerRequests.first(),
account = account, account = account,
onLoading = onLoading, onLoading = onLoading,
@@ -381,6 +381,7 @@ fun MainScreen(
IncomingRequestScreen( IncomingRequestScreen(
horizontalPadding = verticalPadding, horizontalPadding = verticalPadding,
modifier = modifier, modifier = modifier,
scaffoldPadding = padding,
intents = intents, intents = intents,
bunkerRequests = bunkerRequests, bunkerRequests = bunkerRequests,
packageName = packageName, packageName = packageName,
@@ -5,13 +5,17 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.selection.selectable import androidx.compose.foundation.selection.selectable
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.BottomAppBar import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.ElevatedButton import androidx.compose.material3.ElevatedButton
@@ -62,6 +66,7 @@ import com.greenart7c3.nostrsigner.ui.RememberType
import com.greenart7c3.nostrsigner.ui.SettingsRow import com.greenart7c3.nostrsigner.ui.SettingsRow
import com.greenart7c3.nostrsigner.ui.deleteAfterToSeconds import com.greenart7c3.nostrsigner.ui.deleteAfterToSeconds
import com.greenart7c3.nostrsigner.ui.parseDeleteAfterType import com.greenart7c3.nostrsigner.ui.parseDeleteAfterType
import com.greenart7c3.nostrsigner.ui.verticalScrollbar
import com.vitorpamplona.quartz.nip46RemoteSigner.BunkerRequestConnect import com.vitorpamplona.quartz.nip46RemoteSigner.BunkerRequestConnect
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
@@ -72,7 +77,7 @@ import kotlinx.coroutines.launch
@Composable @Composable
fun BunkerConnectRequestScreen( fun BunkerConnectRequestScreen(
horizontalPadding: Dp, horizontalPadding: Dp,
modifier: Modifier, scaffoldPadding: PaddingValues,
shouldCloseApp: Boolean, shouldCloseApp: Boolean,
account: Account, account: Account,
bunkerRequest: AmberBunkerRequest, bunkerRequest: AmberBunkerRequest,
@@ -147,10 +152,48 @@ fun BunkerConnectRequestScreen(
skipPartiallyExpanded = true, skipPartiallyExpanded = true,
) )
Column { val scrollState = rememberScrollState()
Scaffold(
modifier = Modifier.fillMaxSize().padding(scaffoldPadding),
bottomBar = {
Row(
Modifier
.fillMaxWidth()
.padding(horizontal = horizontalPadding)
.padding(vertical = 8.dp),
Arrangement.spacedBy(8.dp),
Alignment.CenterVertically,
) {
AmberButton(
modifier = Modifier.weight(1f),
onClick = {
onReject(RememberType.NEVER)
},
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xFFFF6B00),
),
text = stringResource(R.string.cancel),
)
AmberButton(
modifier = Modifier.weight(1f),
onClick = {
val deleteAfter = deleteAfterToSeconds(parseDeleteAfterType(deleteAfterIndex))
onAccept(localPermissions, selectedOption, closeApp, RememberType.ALWAYS, deleteAfter, accounts[selectedAccountIndex])
},
text = stringResource(R.string.connect),
)
}
},
) { innerPadding ->
Column( Column(
modifier = modifier modifier = Modifier
.weight(1f), .fillMaxSize()
.padding(innerPadding)
.verticalScrollbar(scrollState)
.verticalScroll(scrollState)
.padding(horizontal = horizontalPadding),
) { ) {
Text( Text(
modifier = Modifier modifier = Modifier
@@ -335,35 +378,8 @@ fun BunkerConnectRequestScreen(
} }
} }
} }
}
Row( Spacer(modifier = Modifier.height(8.dp))
Modifier
.fillMaxWidth()
.padding(horizontal = horizontalPadding)
.padding(vertical = 8.dp),
Arrangement.spacedBy(8.dp),
Alignment.CenterVertically,
) {
AmberButton(
modifier = Modifier.weight(1f),
onClick = {
onReject(RememberType.NEVER)
},
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xFFFF6B00),
),
text = stringResource(R.string.cancel),
)
AmberButton(
modifier = Modifier.weight(1f),
onClick = {
val deleteAfter = deleteAfterToSeconds(parseDeleteAfterType(deleteAfterIndex))
onAccept(localPermissions, selectedOption, closeApp, RememberType.ALWAYS, deleteAfter, accounts[selectedAccountIndex])
},
text = stringResource(R.string.connect),
)
} }
} }
} }
@@ -3,6 +3,7 @@ package com.greenart7c3.nostrsigner.ui.components
import android.widget.Toast import android.widget.Toast
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
@@ -61,6 +62,7 @@ import kotlinx.coroutines.launch
fun BunkerSingleEventHomeScreen( fun BunkerSingleEventHomeScreen(
horizontalPadding: Dp, horizontalPadding: Dp,
modifier: Modifier, modifier: Modifier,
scaffoldPadding: PaddingValues,
bunkerRequest: AmberBunkerRequest, bunkerRequest: AmberBunkerRequest,
account: Account, account: Account,
onLoading: (Boolean) -> Unit, onLoading: (Boolean) -> Unit,
@@ -224,7 +226,7 @@ fun BunkerSingleEventHomeScreen(
BunkerConnectRequestScreen( BunkerConnectRequestScreen(
horizontalPadding = horizontalPadding, horizontalPadding = horizontalPadding,
modifier = modifier, scaffoldPadding = scaffoldPadding,
shouldCloseApp = applicationEntity?.application?.closeApplication ?: bunkerRequest.closeApplication, shouldCloseApp = applicationEntity?.application?.closeApplication ?: bunkerRequest.closeApplication,
account = account, account = account,
bunkerRequest = bunkerRequest, bunkerRequest = bunkerRequest,