| 2151 | auto moduleNameCpp = ValdiAndroid::toInternedString(ValdiAndroid::JavaEnv(), moduleName); |
| 2152 | auto pathCpp = ValdiAndroid::toInternedString(ValdiAndroid::JavaEnv(), path); |
| 2153 | auto bundle = runtimeWrapper->getRuntime().getResourceManager().getBundle(moduleNameCpp); |
| 2154 | auto entry = bundle->getEntry(pathCpp); |
| 2155 | if (!entry) { |
| 2156 | return nullptr; |
| 2157 | } |
| 2158 | |
| 2159 | if (saveToDisk != 0) { |
| 2160 | Valdi::Path path(".valdi_extracted_module"); |
| 2161 | path.append(moduleNameCpp.toStringView()).append(pathCpp.toStringView()); |
| 2162 | const auto& diskCache = runtimeWrapper->getRuntime().getDiskCache(); |
| 2163 | auto result = diskCache->store(path, entry.value()); |
| 2164 | if (!result) { |
| 2165 | ValdiAndroid::throwJavaValdiException(fbjni::Environment::current(), result.error()); |
| 2166 | return nullptr; |
| 2167 | } |
| 2168 | |
| 2169 | auto filePath = diskCache->getAbsoluteURL(path).substring(std::string_view("file://").length()); |
| 2170 | return newJavaStringUTF8(filePath.toStringView()).release(); |
| 2171 | } else { |
| 2172 | return newJavaByteArray(entry.value().data(), entry.value().size()).release(); |
| 2173 | } |
| 2174 | } |
| 2175 | |
| 2176 | // NOLINTNEXTLINE |
| 2177 | jdouble ValdiAndroid::NativeBridge::getCurrentEventTime(fbjni::alias_ref<fbjni::JClass> /*clazz*/) { |
| 2178 | return static_cast<jdouble>(Valdi::TimePoint::now().getTime()); |
| 2179 | } |
| 2180 | |
| 2181 | void ValdiAndroid::NativeBridge::startProfiling( // NOLINT |
| 2182 | fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT |
| 2183 | jlong runtimeHandle) { |
| 2184 | auto* runtime = getRuntime(runtimeHandle); |
nothing calls this directly
no test coverage detected