Detect GV2 capability in non-gcm Android devices
This commit is contained in:
parent
9339823e84
commit
e64c8007c0
|
@ -255,13 +255,13 @@ public class Device {
|
|||
final boolean groupsV2Supported;
|
||||
|
||||
if (this.capabilities != null) {
|
||||
if (this.getGcmId() != null) {
|
||||
groupsV2Supported = this.capabilities.isGv2() || this.capabilities.isGv2_2() || this.capabilities.isGv2_3();
|
||||
} else if (this.apnId != null || this.voipApnId != null) {
|
||||
groupsV2Supported = this.capabilities.isGv2_2() || this.capabilities.isGv2_3();
|
||||
} else {
|
||||
groupsV2Supported = this.capabilities.isGv2_3();
|
||||
}
|
||||
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();
|
||||
|
||||
} else {
|
||||
groupsV2Supported = false;
|
||||
}
|
||||
|
|
|
@ -12,40 +12,56 @@ public class DeviceTest {
|
|||
|
||||
@Test
|
||||
@Parameters(method = "argumentsForTestIsGroupsV2Supported")
|
||||
public void testIsGroupsV2Supported(final String gcmId, final String apnId, final boolean gv2Capability, final boolean gv2_2Capability, final boolean gv2_3Capability, final boolean expectGv2Supported) {
|
||||
public void testIsGroupsV2Supported(final boolean master, final String apnId, final boolean gv2Capability, final boolean gv2_2Capability, final boolean gv2_3Capability, final boolean expectGv2Supported) {
|
||||
final Device.DeviceCapabilities capabilities = new Device.DeviceCapabilities(gv2Capability, gv2_2Capability, gv2_3Capability, false, false);
|
||||
final Device device = new Device(1, "test", "auth-token", "salt", "signaling-key", gcmId, apnId, null, false, 1, null, 0, 0, "user-agent", 0, capabilities);
|
||||
final Device device = new Device(master ? 1 : 2, "test", "auth-token", "salt", "signaling-key", null, apnId, null, false, 1, null, 0, 0, "user-agent", 0, capabilities);
|
||||
|
||||
assertEquals(expectGv2Supported, device.isGroupsV2Supported());
|
||||
}
|
||||
|
||||
private static Object argumentsForTestIsGroupsV2Supported() {
|
||||
return new Object[] {
|
||||
// gcmId apnId gv2 gv2-2 gv2-3 capable
|
||||
new Object[] { "gcm-id", null, false, false, false, false },
|
||||
new Object[] { "gcm-id", null, true, false, false, true },
|
||||
new Object[] { "gcm-id", null, false, true, false, true },
|
||||
new Object[] { "gcm-id", null, true, true, false, true },
|
||||
new Object[] { "gcm-id", null, false, false, true, true },
|
||||
new Object[] { "gcm-id", null, true, false, true, true },
|
||||
new Object[] { "gcm-id", null, false, true, true, true },
|
||||
new Object[] { "gcm-id", null, true, true, true, true },
|
||||
new Object[] { null, "apn-id", false, false, false, false },
|
||||
new Object[] { null, "apn-id", true, false, false, false },
|
||||
new Object[] { null, "apn-id", false, true, false, true },
|
||||
new Object[] { null, "apn-id", true, true, false, true },
|
||||
new Object[] { null, "apn-id", false, false, true, true },
|
||||
new Object[] { null, "apn-id", true, false, true, true },
|
||||
new Object[] { null, "apn-id", false, true, true, true },
|
||||
new Object[] { null, "apn-id", true, true, true, true },
|
||||
new Object[] { null, null, false, false, false, false },
|
||||
new Object[] { null, null, true, false, false, false },
|
||||
new Object[] { null, null, false, true, false, false },
|
||||
new Object[] { null, null, true, true, false, false },
|
||||
new Object[] { null, null, false, false, true, true },
|
||||
new Object[] { null, null, true, false, true, true },
|
||||
new Object[] { null, null, false, true, true, true },
|
||||
new Object[] { null, null, true, true, true, true }
|
||||
// master apnId gv2 gv2-2 gv2-3 capable
|
||||
|
||||
// Android master
|
||||
new Object[] { true, null, false, false, false, false },
|
||||
new Object[] { true, null, true, false, false, true },
|
||||
new Object[] { true, null, false, true, false, true },
|
||||
new Object[] { true, null, true, true, false, true },
|
||||
new Object[] { true, null, false, false, true, true },
|
||||
new Object[] { true, null, true, false, true, true },
|
||||
new Object[] { true, null, false, true, true, true },
|
||||
new Object[] { true, null, true, true, true, true },
|
||||
|
||||
// iOs master
|
||||
new Object[] { true, "apn-id", false, false, false, false },
|
||||
new Object[] { true, "apn-id", true, false, false, false },
|
||||
new Object[] { true, "apn-id", false, true, false, true },
|
||||
new Object[] { true, "apn-id", true, true, false, true },
|
||||
new Object[] { true, "apn-id", false, false, true, true },
|
||||
new Object[] { true, "apn-id", true, false, true, true },
|
||||
new Object[] { true, "apn-id", false, true, true, true },
|
||||
new Object[] { true, "apn-id", true, true, true, true },
|
||||
|
||||
// iOs linked
|
||||
new Object[] { false, "apn-id", false, false, false, false },
|
||||
new Object[] { false, "apn-id", true, false, false, false },
|
||||
new Object[] { false, "apn-id", false, true, false, true },
|
||||
new Object[] { false, "apn-id", true, true, false, true },
|
||||
new Object[] { false, "apn-id", false, false, true, true },
|
||||
new Object[] { false, "apn-id", true, false, true, true },
|
||||
new Object[] { false, "apn-id", false, true, true, true },
|
||||
new Object[] { false, "apn-id", true, true, true, true },
|
||||
|
||||
// desktop linked
|
||||
new Object[] { false, null, false, false, false, false },
|
||||
new Object[] { false, null, true, false, false, false },
|
||||
new Object[] { false, null, false, true, false, false },
|
||||
new Object[] { false, null, true, true, false, false },
|
||||
new Object[] { false, null, false, false, true, true },
|
||||
new Object[] { false, null, true, false, true, true },
|
||||
new Object[] { false, null, false, true, true, true },
|
||||
new Object[] { false, null, true, true, true, true }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue