diff --git a/core/src/main/java/org/lsposed/lspd/core/ApplicationServiceClient.java b/core/src/main/java/org/lsposed/lspd/core/ApplicationServiceClient.java index 1bc6fe50..57f3c607 100644 --- a/core/src/main/java/org/lsposed/lspd/core/ApplicationServiceClient.java +++ b/core/src/main/java/org/lsposed/lspd/core/ApplicationServiceClient.java @@ -94,9 +94,9 @@ public class ApplicationServiceClient implements ILSPApplicationService, IBinder } @Override - public Bundle requestRemotePreference(String packageName, int userId, String group, IBinder callback) { + public Bundle requestRemotePreferences(String packageName, int userId, String group, IBinder callback) { try { - return service.requestRemotePreference(packageName, userId, group, callback); + return service.requestRemotePreferences(packageName, userId, group, callback); } catch (RemoteException | NullPointerException ignored) { } return null; diff --git a/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java b/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java index 38b2263e..535ed5f3 100644 --- a/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java +++ b/core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java @@ -239,7 +239,7 @@ public class LSPosedContext extends XposedContext { @Override public SharedPreferences getSharedPreferences(String name, int mode) { if (name == null) throw new IllegalArgumentException("name must not be null"); - return mRemotePrefs.computeIfAbsent(name, __ -> new LSPosedRemotePreference(mPackageName, Process.myPid() / PER_USER_RANGE, name)); + return mRemotePrefs.computeIfAbsent(name, __ -> new LSPosedRemotePreferences(mPackageName, Process.myPid() / PER_USER_RANGE, name)); } @Override diff --git a/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreference.java b/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java similarity index 86% rename from core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreference.java rename to core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java index 81c210a7..6e3ac32d 100644 --- a/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreference.java +++ b/core/src/main/java/org/lsposed/lspd/impl/LSPosedRemotePreferences.java @@ -15,17 +15,16 @@ import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import de.robv.android.xposed.XposedBridge; -import io.github.xposed.xposedservice.IXRemotePreferenceCallback; @SuppressWarnings("unchecked") -public class LSPosedRemotePreference implements SharedPreferences { +public class LSPosedRemotePreferences implements SharedPreferences { private final Map mMap = new ConcurrentHashMap<>(); private static final Object CONTENT = new Object(); final WeakHashMap mListeners = new WeakHashMap<>(); - IXRemotePreferenceCallback callback = new IXRemotePreferenceCallback.Stub() { + IRemotePreferenceCallback callback = new IRemotePreferenceCallback.Stub() { @Override synchronized public void onUpdate(Bundle bundle) { if (bundle.containsKey("map")) @@ -33,18 +32,16 @@ public class LSPosedRemotePreference implements SharedPreferences { if (bundle.containsKey("diff")) { for (var key : bundle.getStringArrayList("diff")) { synchronized (mListeners) { - mListeners.forEach((listener, __) -> { - listener.onSharedPreferenceChanged(LSPosedRemotePreference.this, key); - }); + mListeners.forEach((listener, __) -> listener.onSharedPreferenceChanged(LSPosedRemotePreferences.this, key)); } } } } }; - public LSPosedRemotePreference(String packageName, int userId, String group) { + public LSPosedRemotePreferences(String packageName, int userId, String group) { try { - Bundle output = serviceClient.requestRemotePreference(packageName, userId, group, callback.asBinder()); + Bundle output = serviceClient.requestRemotePreferences(packageName, userId, group, callback.asBinder()); callback.onUpdate(output); } catch (RemoteException e) { XposedBridge.log(e); diff --git a/daemon/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java b/daemon/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java index 56ab2f7f..8c452969 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/LSPApplicationService.java @@ -143,7 +143,7 @@ public class LSPApplicationService extends ILSPApplicationService.Stub { } @Override - public Bundle requestRemotePreference(String packageName, int userId, String group, IBinder callback) throws RemoteException { + public Bundle requestRemotePreferences(String packageName, int userId, String group, IBinder callback) throws RemoteException { ensureRegistered(); // TODO: Handle callback var bundle = new Bundle(); diff --git a/services/daemon-service/src/main/aidl/org/lsposed/lspd/impl/IRemotePreferenceCallback.aidl b/services/daemon-service/src/main/aidl/org/lsposed/lspd/impl/IRemotePreferenceCallback.aidl new file mode 100644 index 00000000..268347c8 --- /dev/null +++ b/services/daemon-service/src/main/aidl/org/lsposed/lspd/impl/IRemotePreferenceCallback.aidl @@ -0,0 +1,5 @@ +package org.lsposed.lspd.impl; + +interface IRemotePreferenceCallback { + oneway void onUpdate(in Bundle map); +} diff --git a/services/daemon-service/src/main/aidl/org/lsposed/lspd/service/ILSPApplicationService.aidl b/services/daemon-service/src/main/aidl/org/lsposed/lspd/service/ILSPApplicationService.aidl index e49d10f1..9ee7943d 100644 --- a/services/daemon-service/src/main/aidl/org/lsposed/lspd/service/ILSPApplicationService.aidl +++ b/services/daemon-service/src/main/aidl/org/lsposed/lspd/service/ILSPApplicationService.aidl @@ -11,7 +11,7 @@ interface ILSPApplicationService { String getPrefsPath(String packageName); - Bundle requestRemotePreference(String packageName, int userId, String group, IBinder callback); + Bundle requestRemotePreferences(String packageName, int userId, String group, IBinder callback); ParcelFileDescriptor requestInjectedManagerBinder(out List binder); }