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();
|
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
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
String fingerprint = getFingerprint();
|
String fingerprint = getFingerprint();
|
||||||
|
@ -2,7 +2,7 @@ package org.fdroid.fdroid.localrepo.peers;
|
|||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
|
import android.text.TextUtils;
|
||||||
import org.fdroid.fdroid.R;
|
import org.fdroid.fdroid.R;
|
||||||
import org.fdroid.fdroid.data.NewRepoConfig;
|
import org.fdroid.fdroid.data.NewRepoConfig;
|
||||||
|
|
||||||
@ -26,6 +26,35 @@ public class WifiPeer implements Peer {
|
|||||||
this.shouldPromptForSwapBack = shouldPromptForSwapBack;
|
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
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user