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.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size
@@ -33,6 +34,7 @@ import kotlinx.collections.immutable.ImmutableList
fun IncomingRequestScreen(
horizontalPadding: Dp,
modifier: Modifier,
scaffoldPadding: PaddingValues,
intents: ImmutableList<IntentData>,
bunkerRequests: ImmutableList<AmberBunkerRequest>,
packageName: String?,
@@ -78,6 +80,7 @@ fun IncomingRequestScreen(
BunkerSingleEventHomeScreen(
horizontalPadding = horizontalPadding,
modifier = modifier,
scaffoldPadding = scaffoldPadding,
bunkerRequest = bunkerRequests.first(),
account = account,
onLoading = onLoading,
@@ -381,6 +381,7 @@ fun MainScreen(
IncomingRequestScreen(
horizontalPadding = verticalPadding,
modifier = modifier,
scaffoldPadding = padding,
intents = intents,
bunkerRequests = bunkerRequests,
packageName = packageName,
@@ -5,13 +5,17 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.selection.selectable
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.ButtonDefaults
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.deleteAfterToSeconds
import com.greenart7c3.nostrsigner.ui.parseDeleteAfterType
import com.greenart7c3.nostrsigner.ui.verticalScrollbar
import com.vitorpamplona.quartz.nip46RemoteSigner.BunkerRequestConnect
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentListOf
@@ -72,7 +77,7 @@ import kotlinx.coroutines.launch
@Composable
fun BunkerConnectRequestScreen(
horizontalPadding: Dp,
modifier: Modifier,
scaffoldPadding: PaddingValues,
shouldCloseApp: Boolean,
account: Account,
bunkerRequest: AmberBunkerRequest,
@@ -147,10 +152,48 @@ fun BunkerConnectRequestScreen(
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(
modifier = modifier
.weight(1f),
modifier = Modifier
.fillMaxSize()
.padding(innerPadding)
.verticalScrollbar(scrollState)
.verticalScroll(scrollState)
.padding(horizontal = horizontalPadding),
) {
Text(
modifier = Modifier
@@ -335,35 +378,8 @@ fun BunkerConnectRequestScreen(
}
}
}
}
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),
)
Spacer(modifier = Modifier.height(8.dp))
}
}
}
@@ -3,6 +3,7 @@ package com.greenart7c3.nostrsigner.ui.components
import android.widget.Toast
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size
@@ -61,6 +62,7 @@ import kotlinx.coroutines.launch
fun BunkerSingleEventHomeScreen(
horizontalPadding: Dp,
modifier: Modifier,
scaffoldPadding: PaddingValues,
bunkerRequest: AmberBunkerRequest,
account: Account,
onLoading: (Boolean) -> Unit,
@@ -224,7 +226,7 @@ fun BunkerSingleEventHomeScreen(
BunkerConnectRequestScreen(
horizontalPadding = horizontalPadding,
modifier = modifier,
scaffoldPadding = scaffoldPadding,
shouldCloseApp = applicationEntity?.application?.closeApplication ?: bunkerRequest.closeApplication,
account = account,
bunkerRequest = bunkerRequest,