/** * Expecting only strings like "1.2.2" */ private static int parseToSingleInt(String version) { try { var parts = split3('.', version); return parse(parts); } catch (Exception e) { log.debug("Error parsing app versionSingleNumber {}. Reason : {}.", version, e.getMessage()); } return 0; }
public Version(String osString, String versionString) { this(OsType.parse(osString), parseToSingleInt(versionString)); }
@Override protected void channelRead0(ChannelHandlerContext ctx, ShareLoginMessage message) { String[] messageParts = message.body.split(StringUtils.BODY_SEPARATOR_STRING); if (messageParts.length < 2) { log.error("Wrong income message format."); ctx.writeAndFlush(illegalCommand(message.id), ctx.voidPromise()); } else { //var uid = messageParts.length == 5 ? messageParts[4] : null; var version = messageParts.length > 3 ? new Version(messageParts[2], messageParts[3]) : Version.UNKNOWN_VERSION; appLogin(ctx, message.id, messageParts[0], messageParts[1], version); } }
private void completeLogin(Channel channel, Session session, User user, int msgId, Version version) { if (allowStoreIp) { user.lastLoggedIP = IPUtils.getIp(channel.remoteAddress()); } user.lastLoggedAt = System.currentTimeMillis(); session.addAppChannel(channel); channel.writeAndFlush(ok(msgId), channel.voidPromise()); for (DashBoard dashBoard : user.profile.dashBoards) { if (dashBoard.isAppConnectedOn && dashBoard.isActive) { log.trace("{}-{}. Sending App Connected event to hardware for project {}.", user.email, user.appName, dashBoard.id); session.sendMessageToHardware(dashBoard.id, BLYNK_INTERNAL, 7777, "acon"); } } if (version.isOutdated()) { channel.writeAndFlush( makeASCIIStringMessage(OUTDATED_APP_NOTIFICATION, msgId, "Your app is outdated. Please update to the latest app version. " + "Ignoring this notice may affect your projects."), channel.voidPromise()); } log.info("{} {}-app ({}) joined.", user.email, user.appName, version); }
@Override protected void channelRead0(ChannelHandlerContext ctx, LoginMessage message) { String[] messageParts = message.body.split(BODY_SEPARATOR_STRING); if (messageParts.length < 2) { log.error("Wrong income message format."); ctx.writeAndFlush(illegalCommand(message.id), ctx.voidPromise()); return; } ///.trim() is not used for back compatibility String email = messageParts[0].toLowerCase(); Version version = messageParts.length > 3 ? new Version(messageParts[2], messageParts[3]) : Version.UNKNOWN_VERSION; if (messageParts.length == 5) { if (AppNameUtil.FACEBOOK.equals(messageParts[4])) { facebookLogin(ctx, message.id, email, messageParts[1], version); } else { String appName = messageParts[4]; blynkLogin(ctx, message.id, email, messageParts[1], version, appName); } } else { //todo this is for back compatibility blynkLogin(ctx, message.id, email, messageParts[1], version, AppNameUtil.BLYNK); } }