This commit is contained in:
arm64v8a 2023-05-15 09:21:58 +09:00
parent 0ac46f4bc6
commit 55a2af6779
3 changed files with 8 additions and 2 deletions

View File

@ -187,8 +187,6 @@ public abstract class StandardV2RayBean extends AbstractBean {
StandardV2RayBean bean = ((StandardV2RayBean) other); StandardV2RayBean bean = ((StandardV2RayBean) other);
bean.allowInsecure = allowInsecure; bean.allowInsecure = allowInsecure;
bean.utlsFingerprint = utlsFingerprint; bean.utlsFingerprint = utlsFingerprint;
bean.realityPubKey = realityPubKey;
bean.realityShortId = realityShortId;
} }
public boolean isVLESS() { public boolean isVLESS() {

View File

@ -104,6 +104,7 @@ class AboutFragment : ToolbarFragment(R.layout.layout_about) {
} }
.build()) .build())
.apply { .apply {
PackageCache.awaitLoadSync()
for ((_, pkg) in PackageCache.installedPluginPackages) { for ((_, pkg) in PackageCache.installedPluginPackages) {
try { try {
val pluginId = pkg.providers[0].loadString(Plugins.METADATA_KEY_ID) val pluginId = pkg.providers[0].loadString(Plugins.METADATA_KEY_ID)

View File

@ -11,6 +11,7 @@ import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.sync.withLock
import moe.matsuri.nb4a.plugin.Plugins import moe.matsuri.nb4a.plugin.Plugins
import java.util.concurrent.atomic.AtomicBoolean
object PackageCache { object PackageCache {
@ -20,9 +21,11 @@ object PackageCache {
lateinit var packageMap: Map<String, Int> lateinit var packageMap: Map<String, Int>
val uidMap = HashMap<Int, HashSet<String>>() val uidMap = HashMap<Int, HashSet<String>>()
val loaded = Mutex(true) val loaded = Mutex(true)
var registerd = AtomicBoolean(false)
// called from init (suspend) // called from init (suspend)
fun register() { fun register() {
if (registerd.getAndSet(true)) return
reload() reload()
app.listenForPackageChanges(false) { app.listenForPackageChanges(false) {
reload() reload()
@ -77,6 +80,10 @@ object PackageCache {
if (::packageMap.isInitialized) { if (::packageMap.isInitialized) {
return return
} }
if (!registerd.get()) {
register()
return
}
runBlocking { runBlocking {
loaded.withLock { loaded.withLock {
// just await // just await