mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-23 15:53:59 +00:00
- our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
51 lines
2 KiB
C++
51 lines
2 KiB
C++
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#include "common/android/android_common.h"
|
|
#include "common/android/id_cache.h"
|
|
#include "common/android/applets/web_browser.h"
|
|
#include "common/logging.h"
|
|
|
|
static jclass s_native_library_class = nullptr;
|
|
static jmethodID s_open_external_url = nullptr;
|
|
|
|
namespace Common::Android::WebBrowser {
|
|
|
|
void InitJNI(JNIEnv* env) {
|
|
const jclass local = env->FindClass("org/yuzu/yuzu_emu/NativeLibrary");
|
|
s_native_library_class = static_cast<jclass>(env->NewGlobalRef(local));
|
|
env->DeleteLocalRef(local);
|
|
s_open_external_url = env->GetStaticMethodID(s_native_library_class, "openExternalUrl", "(Ljava/lang/String;)V");
|
|
}
|
|
|
|
void CleanupJNI(JNIEnv* env) {
|
|
if (s_native_library_class != nullptr) {
|
|
env->DeleteGlobalRef(s_native_library_class);
|
|
s_native_library_class = nullptr;
|
|
}
|
|
s_open_external_url = nullptr;
|
|
}
|
|
|
|
void AndroidWebBrowser::OpenLocalWebPage(const std::string& local_url, ExtractROMFSCallback extract_romfs_callback, OpenWebPageCallback callback) const {
|
|
LOG_WARNING(Frontend, "(STUBBED)");
|
|
callback(Service::AM::Frontend::WebExitReason::WindowClosed, "");
|
|
}
|
|
|
|
void AndroidWebBrowser::OpenExternalWebPage(const std::string& external_url, OpenWebPageCallback callback) const {
|
|
// do a dedicated thread, calling from the this thread crashed CPU fiber.
|
|
Common::Android::RunJNIOnFiber<void>([&](JNIEnv* env) {
|
|
if (env != nullptr && s_native_library_class != nullptr && s_open_external_url != nullptr) {
|
|
const jstring j_url = Common::Android::ToJString(env, external_url);
|
|
env->CallStaticVoidMethod(s_native_library_class, s_open_external_url, j_url);
|
|
env->DeleteLocalRef(j_url);
|
|
} else {
|
|
LOG_ERROR(Frontend, "JNI not initialized, cannot open {}", external_url);
|
|
}
|
|
return;
|
|
});
|
|
|
|
callback(Service::AM::Frontend::WebExitReason::WindowClosed, external_url);
|
|
}
|
|
|
|
} // namespace Common::Android::WebBrowser
|