Fix remote prefs
This commit is contained in:
parent
fc1adeac55
commit
06c26fbbb6
|
|
@ -29,7 +29,7 @@ public class LSPosedRemotePreferences implements SharedPreferences {
|
||||||
synchronized public void onUpdate(Bundle bundle) {
|
synchronized public void onUpdate(Bundle bundle) {
|
||||||
Set<String> changes = new ArraySet<>();
|
Set<String> changes = new ArraySet<>();
|
||||||
if (bundle.containsKey("delete")) {
|
if (bundle.containsKey("delete")) {
|
||||||
var deletes = bundle.getStringArrayList("delete");
|
var deletes = (Set<String>) bundle.getSerializable("delete");
|
||||||
changes.addAll(deletes);
|
changes.addAll(deletes);
|
||||||
for (var key : deletes) {
|
for (var key : deletes) {
|
||||||
mMap.remove(key);
|
mMap.remove(key);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import android.os.Binder;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import org.lsposed.lspd.models.Module;
|
import org.lsposed.lspd.models.Module;
|
||||||
|
|
||||||
|
|
@ -17,6 +18,9 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||||
import io.github.libxposed.service.IXposedService;
|
import io.github.libxposed.service.IXposedService;
|
||||||
|
|
||||||
public class LSPInjectedModuleService extends ILSPInjectedModuleService.Stub {
|
public class LSPInjectedModuleService extends ILSPInjectedModuleService.Stub {
|
||||||
|
|
||||||
|
private static final String TAG = "LSPosedInjectedModuleService";
|
||||||
|
|
||||||
private final Module loadedModule;
|
private final Module loadedModule;
|
||||||
|
|
||||||
Map<String, Set<IRemotePreferenceCallback>> callbacks = new ConcurrentHashMap<>();
|
Map<String, Set<IRemotePreferenceCallback>> callbacks = new ConcurrentHashMap<>();
|
||||||
|
|
@ -38,7 +42,11 @@ public class LSPInjectedModuleService extends ILSPInjectedModuleService.Stub {
|
||||||
if (callback != null) {
|
if (callback != null) {
|
||||||
var groupCallbacks = callbacks.computeIfAbsent(group, k -> ConcurrentHashMap.newKeySet());
|
var groupCallbacks = callbacks.computeIfAbsent(group, k -> ConcurrentHashMap.newKeySet());
|
||||||
groupCallbacks.add(callback);
|
groupCallbacks.add(callback);
|
||||||
callback.asBinder().unlinkToDeath(() -> groupCallbacks.remove(callback), 0);
|
try {
|
||||||
|
callback.asBinder().linkToDeath(() -> groupCallbacks.remove(callback), 0);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.w(TAG, "requestRemotePreferences: ", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return bundle;
|
return bundle;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue