Require Android clients to support the gv2-3 capability
This commit is contained in:
parent
96cbdd5c37
commit
e1c397993d
|
@ -252,8 +252,9 @@ public class DeviceController {
|
||||||
if (account.isGroupsV2Supported()) {
|
if (account.isGroupsV2Supported()) {
|
||||||
try {
|
try {
|
||||||
switch (UserAgentUtil.parseUserAgentString(userAgent).getPlatform()) {
|
switch (UserAgentUtil.parseUserAgentString(userAgent).getPlatform()) {
|
||||||
|
case DESKTOP:
|
||||||
case ANDROID: {
|
case ANDROID: {
|
||||||
if (!capabilities.isGv2() && !capabilities.isGv2_2() && !capabilities.isGv2_3()) {
|
if (!capabilities.isGv2_3()) {
|
||||||
isDowngrade = true;
|
isDowngrade = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,14 +268,6 @@ public class DeviceController {
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case DESKTOP: {
|
|
||||||
if (!capabilities.isGv2_3()) {
|
|
||||||
isDowngrade = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (final UnrecognizedUserAgentException e) {
|
} catch (final UnrecognizedUserAgentException e) {
|
||||||
// If we can't parse the UA string, the client is for sure too old to support groups V2
|
// If we can't parse the UA string, the client is for sure too old to support groups V2
|
||||||
|
|
|
@ -255,13 +255,9 @@ public class Device {
|
||||||
final boolean groupsV2Supported;
|
final boolean groupsV2Supported;
|
||||||
|
|
||||||
if (this.capabilities != null) {
|
if (this.capabilities != null) {
|
||||||
boolean ios = this.apnId != null || this.voipApnId != null;
|
final boolean ios = this.apnId != null || this.voipApnId != null;
|
||||||
boolean android = isMaster() && !ios;
|
|
||||||
|
|
||||||
if (android) groupsV2Supported = this.capabilities.isGv2() || this.capabilities.isGv2_2() || this.capabilities.isGv2_3();
|
|
||||||
else if (ios) groupsV2Supported = this.capabilities.isGv2_2() || this.capabilities.isGv2_3();
|
|
||||||
else groupsV2Supported = this.capabilities.isGv2_3();
|
|
||||||
|
|
||||||
|
groupsV2Supported = this.capabilities.isGv2_3() || (ios && this.capabilities.isGv2_2());
|
||||||
} else {
|
} else {
|
||||||
groupsV2Supported = false;
|
groupsV2Supported = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,9 +76,9 @@ public class DeviceTest {
|
||||||
|
|
||||||
// Android master
|
// Android master
|
||||||
new Object[] { true, null, false, false, false, false },
|
new Object[] { true, null, false, false, false, false },
|
||||||
new Object[] { true, null, true, false, false, true },
|
new Object[] { true, null, true, false, false, false },
|
||||||
new Object[] { true, null, false, true, false, true },
|
new Object[] { true, null, false, true, false, false },
|
||||||
new Object[] { true, null, true, true, false, true },
|
new Object[] { true, null, true, true, false, false },
|
||||||
new Object[] { true, null, false, false, true, true },
|
new Object[] { true, null, false, false, true, true },
|
||||||
new Object[] { true, null, true, false, true, true },
|
new Object[] { true, null, true, false, true, true },
|
||||||
new Object[] { true, null, false, true, true, true },
|
new Object[] { true, null, false, true, true, true },
|
||||||
|
|
|
@ -246,9 +246,10 @@ public class DeviceControllerTest {
|
||||||
|
|
||||||
private static Object argumentsForDeviceDowngradeCapabilitiesTest() {
|
private static Object argumentsForDeviceDowngradeCapabilitiesTest() {
|
||||||
return new Object[] {
|
return new Object[] {
|
||||||
|
// User-Agent gv2 gv2-2 gv2-3 expected
|
||||||
new Object[] { "Signal-Android/4.68.3 Android/25", false, false, false, 409 },
|
new Object[] { "Signal-Android/4.68.3 Android/25", false, false, false, 409 },
|
||||||
new Object[] { "Signal-Android/4.68.3 Android/25", true, false, false, 200 },
|
new Object[] { "Signal-Android/4.68.3 Android/25", true, false, false, 409 },
|
||||||
new Object[] { "Signal-Android/4.68.3 Android/25", false, true, false, 200 },
|
new Object[] { "Signal-Android/4.68.3 Android/25", false, true, false, 409 },
|
||||||
new Object[] { "Signal-Android/4.68.3 Android/25", false, false, true, 200 },
|
new Object[] { "Signal-Android/4.68.3 Android/25", false, false, true, 200 },
|
||||||
new Object[] { "Signal-iOS/3.9.0", false, false, false, 409 },
|
new Object[] { "Signal-iOS/3.9.0", false, false, false, 409 },
|
||||||
new Object[] { "Signal-iOS/3.9.0", true, false, false, 409 },
|
new Object[] { "Signal-iOS/3.9.0", true, false, false, 409 },
|
||||||
|
|
Loading…
Reference in New Issue