make BonjourPeer and WifiPeer equals if they point to the same device
This commit is contained in:
parent
74c3c24f0a
commit
0727787713
@ -28,15 +28,6 @@ public class BonjourPeer extends WifiPeer {
|
||||
return serviceInfo.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object peer) {
|
||||
if (peer instanceof BonjourPeer) {
|
||||
BonjourPeer that = (BonjourPeer) peer;
|
||||
return TextUtils.equals(this.getFingerprint(), that.getFingerprint());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
String fingerprint = getFingerprint();
|
||||
|
@ -2,7 +2,7 @@ package org.fdroid.fdroid.localrepo.peers;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Parcel;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.data.NewRepoConfig;
|
||||
|
||||
@ -26,6 +26,35 @@ public class WifiPeer implements Peer {
|
||||
this.shouldPromptForSwapBack = shouldPromptForSwapBack;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return if this instance points to the same device as that instance, even
|
||||
* if some of the configuration details are not the same, like whether one
|
||||
* instance supplies the fingerprint and the other does not, then use IP
|
||||
* address and port number.
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object peer) {
|
||||
if (peer instanceof BluetoothPeer) {
|
||||
return false;
|
||||
}
|
||||
String fingerprint = getFingerprint();
|
||||
if (this instanceof BonjourPeer && peer instanceof BonjourPeer) {
|
||||
BonjourPeer that = (BonjourPeer) peer;
|
||||
return TextUtils.equals(this.getFingerprint(), that.getFingerprint());
|
||||
} else {
|
||||
WifiPeer that = (WifiPeer) peer;
|
||||
if (!TextUtils.isEmpty(fingerprint) && TextUtils.equals(this.getFingerprint(), that.getFingerprint())) {
|
||||
return true;
|
||||
}
|
||||
return TextUtils.equals(this.getRepoAddress(), that.getRepoAddress());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return (uri.getHost() + uri.getPort()).hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user