Add some plumbing for the Android 17 local network access permission

This commit is contained in:
Henrik Rydgård
2026-06-15 09:44:56 +02:00
parent b079c5d6ce
commit 697179c8cd
4 changed files with 58 additions and 10 deletions
+24 -10
View File
@@ -1246,6 +1246,9 @@ void System_AskForPermission(SystemPermission permission) {
case SYSTEM_PERMISSION_STORAGE:
PushCommand("ask_permission", "storage");
break;
case SYSTEM_PERMISSION_LOCAL_NETWORK:
PushCommand("ask_permission", "local_network");
break;
}
}
@@ -1450,18 +1453,29 @@ extern "C" void JNICALL Java_org_ppsspp_ppsspp_NativeApp_sendMessageFromJava(JNI
if (msg == "moga") {
mogaVersion = prm;
} else if (msg == "permission_pending") {
INFO_LOG(Log::System, "STORAGE PERMISSION: PENDING");
// TODO: Add support for other permissions
permissions[SYSTEM_PERMISSION_STORAGE] = PERMISSION_STATUS_PENDING;
// Don't need to send along, nothing else is listening.
if (prm == "storage") {
INFO_LOG(Log::System, "STORAGE PERMISSION: PENDING");
permissions[SYSTEM_PERMISSION_STORAGE] = PERMISSION_STATUS_PENDING;
} else if (prm == "local_network") {
INFO_LOG(Log::System, "LOCAL NETWORK PERMISSION: PENDING");
permissions[SYSTEM_PERMISSION_LOCAL_NETWORK] = PERMISSION_STATUS_PENDING;
}
} else if (msg == "permission_denied") {
INFO_LOG(Log::System, "STORAGE PERMISSION: DENIED");
permissions[SYSTEM_PERMISSION_STORAGE] = PERMISSION_STATUS_DENIED;
// Don't need to send along, nothing else is listening.
if (prm == "storage") {
INFO_LOG(Log::System, "STORAGE PERMISSION: DENIED");
permissions[SYSTEM_PERMISSION_STORAGE] = PERMISSION_STATUS_DENIED;
} else if (prm == "local_network") {
INFO_LOG(Log::System, "LOCAL NETWORK PERMISSION: DENIED");
permissions[SYSTEM_PERMISSION_LOCAL_NETWORK] = PERMISSION_STATUS_DENIED;
}
} else if (msg == "permission_granted") {
INFO_LOG(Log::System, "STORAGE PERMISSION: GRANTED");
permissions[SYSTEM_PERMISSION_STORAGE] = PERMISSION_STATUS_GRANTED;
// Send along.
if (prm == "storage") {
INFO_LOG(Log::System, "STORAGE PERMISSION: GRANTED");
permissions[SYSTEM_PERMISSION_STORAGE] = PERMISSION_STATUS_GRANTED;
} else if (prm == "local_network") {
INFO_LOG(Log::System, "LOCAL NETWORK PERMISSION: GRANTED");
permissions[SYSTEM_PERMISSION_LOCAL_NETWORK] = PERMISSION_STATUS_GRANTED;
}
System_PostUIMessage(UIMessage::PERMISSION_GRANTED, prm);
} else if (msg == "sustained_perf_supported") {
sustainedPerfSupported = true;