From: Tobias Brunner Date: Mon, 5 Aug 2024 09:51:40 +0000 (+0200) Subject: android: Replace deprecated Observer/Observable with PropertyChangeListener etc. X-Git-Tag: android-2.5.2^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=01c81ca15f889c8882f0d743d8b5f1bb3d0af75c;p=thirdparty%2Fstrongswan.git android: Replace deprecated Observer/Observable with PropertyChangeListener etc. Kinda misusing the interface as there is no specific property, but otherwise seems like a 1:1 replacement. --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/TrustedCertificateManager.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/TrustedCertificateManager.java index 257f407ffb..c604190052 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/TrustedCertificateManager.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/TrustedCertificateManager.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2015 Tobias Brunner + * Copyright (C) 2012-2024 Tobias Brunner * Copyright (C) 2012 Giuliano Grassi * Copyright (C) 2012 Ralf Sager * @@ -20,6 +20,8 @@ package org.strongswan.android.logic; import android.util.Log; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.cert.Certificate; @@ -27,10 +29,9 @@ import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Enumeration; import java.util.Hashtable; -import java.util.Observable; import java.util.concurrent.locks.ReentrantReadWriteLock; -public class TrustedCertificateManager extends Observable +public class TrustedCertificateManager { private static final String TAG = TrustedCertificateManager.class.getSimpleName(); private final ReentrantReadWriteLock mLock = new ReentrantReadWriteLock(); @@ -38,6 +39,7 @@ public class TrustedCertificateManager extends Observable private volatile boolean mReload; private boolean mLoaded; private final ArrayList mKeyStores = new ArrayList(); + private PropertyChangeSupport mObservers = new PropertyChangeSupport(this); public enum TrustedCertificateSource { @@ -98,6 +100,35 @@ public class TrustedCertificateManager extends Observable return Singleton.mInstance; } + /** + * Add an observer for changes to the trusted certificate store. There will + * be a "storeChanged" property "change" when anything in the store changed. + * + * @param observer observer to add + */ + public void addObserver(PropertyChangeListener observer) + { + mObservers.addPropertyChangeListener(observer); + } + + /** + * Remove an observer for changes to the trusted certificate store. + * + * @param observer observer to remove + */ + public void deleteObserver(PropertyChangeListener observer) + { + mObservers.removePropertyChangeListener(observer); + } + + /** + * Use a fake property with a forced change to notify observers. + */ + private void notifyObservers() + { + mObservers.firePropertyChange("storeChanged", false, true); + } + /** * Invalidates the current load state so that the next call to load() * will force a reload of the cached CA certificates. @@ -110,7 +141,6 @@ public class TrustedCertificateManager extends Observable { Log.d(TAG, "Force reload of cached CA certificates on next load"); this.mReload = true; - this.setChanged(); this.notifyObservers(); return this; } @@ -152,7 +182,6 @@ public class TrustedCertificateManager extends Observable this.mCACerts = certs; if (!this.mLoaded) { - this.setChanged(); this.notifyObservers(); this.mLoaded = true; } diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java index 3b5730773d..1ceba87f7f 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/TrustedCertificateListFragment.java @@ -33,14 +33,14 @@ import org.strongswan.android.logic.TrustedCertificateManager.TrustedCertificate import org.strongswan.android.security.TrustedCertificateEntry; import org.strongswan.android.ui.adapter.TrustedCertificateAdapter; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.Collections; import java.util.Hashtable; import java.util.List; import java.util.Map.Entry; -import java.util.Observable; -import java.util.Observer; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -249,12 +249,12 @@ public class TrustedCertificateListFragment extends ListFragment implements Load } } - private class TrustedCertificateManagerObserver implements Observer + private class TrustedCertificateManagerObserver implements PropertyChangeListener { private ForceLoadContentObserver mContentObserver = new ForceLoadContentObserver(); @Override - public void update(Observable observable, Object data) + public void propertyChange(PropertyChangeEvent evt) { mContentObserver.onChange(false); }