Request all Amber permissions at login (fixes silent no-prompt signing)
The likely real cause of "Amber never pops up, delete hangs" on GrapheneOS: login only requested the get_public_key permission, so later sign_event / encrypt / decrypt calls hit a per-action permission check that routes through Amber's ContentProvider and stalls WITHOUT showing a prompt. Now login pre-grants get_public_key, sign_event, nip04/nip44 encrypt+decrypt up front, so subsequent signing is a fast background round-trip with no surprise permission stall. IMPORTANT: existing sessions only granted get_public_key — users must log out and back in once for Amber to grant the new permission set. Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
This commit is contained in:
parent
96e2939451
commit
b6a37f8bbb
1 changed files with 16 additions and 1 deletions
|
|
@ -133,8 +133,23 @@ export async function getAmberPublicKeyViaPlugin(): Promise<string> {
|
|||
throw new Error('Amber signing is only available in the SkateSpots Android app.');
|
||||
}
|
||||
|
||||
// Request ALL permissions the app will need UP FRONT, so Amber pre-authorizes
|
||||
// signing + encryption at login time. Without this, later signEvent/encrypt
|
||||
// calls trigger a per-action permission check that, on GrapheneOS, routes
|
||||
// through Amber's ContentProvider and stalls WITHOUT ever showing a prompt —
|
||||
// the "Amber never pops up, delete hangs" bug. Pre-granting means signing
|
||||
// afterwards is a fast background round-trip with no surprise stall.
|
||||
const permissions = JSON.stringify([
|
||||
{ type: 'get_public_key' },
|
||||
{ type: 'sign_event' },
|
||||
{ type: 'nip04_encrypt' },
|
||||
{ type: 'nip04_decrypt' },
|
||||
{ type: 'nip44_encrypt' },
|
||||
{ type: 'nip44_decrypt' },
|
||||
]);
|
||||
|
||||
const result = await withTimeout(
|
||||
plugin.getPublicKey({ permissions: JSON.stringify([{ type: 'get_public_key' }]) }),
|
||||
plugin.getPublicKey({ permissions }),
|
||||
'login',
|
||||
);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue