diff --git a/.gitmodules b/.gitmodules index 02fd65d..bd7b873 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "mbedtls"] path = mbedtls url = https://github.com/ARMmbed/mbedtls.git +[submodule "compareToVersion"] + path = compareToVersion + url = https://github.com/stijnster/NSString-compareToVersion.git diff --git a/Steam IM.xcodeproj/project.pbxproj b/Steam IM.xcodeproj/project.pbxproj index 64dddfb..6467808 100644 --- a/Steam IM.xcodeproj/project.pbxproj +++ b/Steam IM.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ 3BF9F90915D5E31E00322064 /* AISteamPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF9F90815D5E31E00322064 /* AISteamPlugin.m */; }; B1AD2210183D3043008163E2 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = B1AD220F183D3043008163E2 /* libz.dylib */; }; CD321DDF182E5AA8003B36A8 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD321DDE182E5AA8003B36A8 /* Security.framework */; }; + CD81A0511C59821500E6E652 /* NSString+CompareToVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CD81A0501C59821500E6E652 /* NSString+CompareToVersion.m */; }; CD8B2F6118CCB997007B4808 /* libsteam.c in Sources */ = {isa = PBXBuildFile; fileRef = CD8B2F5C18CCB997007B4808 /* libsteam.c */; }; CD8B2F6218CCB997007B4808 /* steam_connection.c in Sources */ = {isa = PBXBuildFile; fileRef = CD8B2F5E18CCB997007B4808 /* steam_connection.c */; }; CDB1381E1B93ACDC00E6E652 /* libmbedcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CDB1381D1B93ACDC00E6E652 /* libmbedcrypto.a */; }; @@ -52,6 +53,8 @@ B1AD220F183D3043008163E2 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; CD321D94182E51F4003B36A8 /* glib-headers */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "glib-headers"; sourceTree = ""; }; CD321DDE182E5AA8003B36A8 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + CD81A04F1C59821500E6E652 /* NSString+CompareToVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+CompareToVersion.h"; path = "compareToVersion/Library/NSString+CompareToVersion.h"; sourceTree = ""; }; + CD81A0501C59821500E6E652 /* NSString+CompareToVersion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+CompareToVersion.m"; path = "compareToVersion/Library/NSString+CompareToVersion.m"; sourceTree = ""; }; CD8B2F5818CCB972007B4808 /* libsteamworks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = libsteamworks.cpp; path = opensteamworks/libsteamworks.cpp; sourceTree = ""; }; CD8B2F5918CCB972007B4808 /* libsteamworks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libsteamworks.h; path = opensteamworks/libsteamworks.h; sourceTree = ""; }; CD8B2F5C18CCB997007B4808 /* libsteam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = libsteam.c; path = "opensteamworks/steam-mobile/libsteam.c"; sourceTree = ""; }; @@ -111,6 +114,7 @@ children = ( CD448AD7182E43C600954074 /* pidgin-opensteamworks */, 3BF9F90015D5E31E00322064 /* Steam IM */, + CD81A04E1C597F0B00E6E652 /* CompareToVersion */, 3BF9F8FB15D5E31E00322064 /* Frameworks */, 3B4BC5C815D8DA8100FB6876 /* Products */, ); @@ -164,6 +168,15 @@ name = "pidgin-opensteamworks"; sourceTree = ""; }; + CD81A04E1C597F0B00E6E652 /* CompareToVersion */ = { + isa = PBXGroup; + children = ( + CD81A04F1C59821500E6E652 /* NSString+CompareToVersion.h */, + CD81A0501C59821500E6E652 /* NSString+CompareToVersion.m */, + ); + name = CompareToVersion; + sourceTree = ""; + }; CD8B2F5B18CCB986007B4808 /* steam-mobile */ = { isa = PBXGroup; children = ( @@ -297,6 +310,7 @@ files = ( 3BF9F90915D5E31E00322064 /* AISteamPlugin.m in Sources */, CD8B2F6118CCB997007B4808 /* libsteam.c in Sources */, + CD81A0511C59821500E6E652 /* NSString+CompareToVersion.m in Sources */, CD8B2F6218CCB997007B4808 /* steam_connection.c in Sources */, 3B1DDB0F15D8595700FA3B0E /* ESPurpleSteamAccount.m in Sources */, CDCA35B219CEEF0F00E6E652 /* SteamSettingsViewController.m in Sources */, diff --git a/Steam IM/AISteamPlugin.m b/Steam IM/AISteamPlugin.m index f542749..4f2874a 100644 --- a/Steam IM/AISteamPlugin.m +++ b/Steam IM/AISteamPlugin.m @@ -11,6 +11,7 @@ #import "ESSteamService.h" #import "libsteam.h" #import "mbedtls/version.h" +#import "NSString+CompareToVersion.h" #import @@ -38,6 +39,30 @@ - (void)loadLibpurplePlugin MBEDTLS_VERSION_STRING_FULL", " "pidgin-opensteamworks "STEAM_PLUGIN_VERSION ")",[[self pluginVersion] UTF8String]); + + [self updateCheck]; +} + +- (void) updateCheck +{ + NSString *url_updateCheck = @"https://api.github.com/repos/tripplet/Adium-Steam-IM/releases/latest"; + + NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:url_updateCheck]]; + __block NSDictionary *json; + + [NSURLConnection sendAsynchronousRequest:request + queue:[NSOperationQueue mainQueue] + completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) + { + json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; + + NSString *latestVersion = [json objectForKey:@"name"]; + BOOL isPrerelease = [[json objectForKey:@"prerelease"] boolValue]; + + if (!isPrerelease && [[self pluginVersion] isOlderThanVersion:latestVersion]) { + AILog(@"SteamIM plugin update available"); + } + }]; } - (NSString *)pluginAuthor diff --git a/Steam IM/SteamSettingsViewController.h b/Steam IM/SteamSettingsViewController.h index 297dd5a..1d5d8da 100644 --- a/Steam IM/SteamSettingsViewController.h +++ b/Steam IM/SteamSettingsViewController.h @@ -2,9 +2,7 @@ // SteamSettingsViewController.h // Steam IM // -// Created by Tobias Tangemann on 21.09.14. -// Copyright (c) 2014 Hermi. All rights reserved. -// +// Created by Tobias Tangemann on 21.09.14 #import #import diff --git a/Steam IM/SteamSettingsViewController.m b/Steam IM/SteamSettingsViewController.m index 8acd9bb..d008582 100644 --- a/Steam IM/SteamSettingsViewController.m +++ b/Steam IM/SteamSettingsViewController.m @@ -2,9 +2,7 @@ // SteamSettingsViewController.m // Steam IM // -// Created by Tobias Tangemann on 21.09.14. -// Copyright (c) 2014 Hermi. All rights reserved. -// +// Created by Tobias Tangemann on 21.09.14 #import "SteamSettingsViewController.h" #import diff --git a/compareToVersion b/compareToVersion new file mode 160000 index 0000000..79eeb71 --- /dev/null +++ b/compareToVersion @@ -0,0 +1 @@ +Subproject commit 79eeb7123726e29c651c5b37eb3d71fc53283c99