telegram-purple/telegram-adium/TelegramService.m

136 lines
3.3 KiB
Mathematica
Raw Permalink Normal View History

2014-10-05 12:21:29 +02:00
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
#import "TelegramService.h"
#import "AdiumTelegramAccount.h"
2014-10-05 12:19:15 +02:00
#import <Adium/AIStatusControllerProtocol.h>
#import <AIUtilities/AIImageAdditions.h>
@implementation TelegramService
- (Class)accountClass{
2014-10-05 12:19:15 +02:00
return [AdiumTelegramAccount class];
}
//Service Description
- (NSString *)serviceCodeUniqueID{
return @"prpl-telegram";
}
- (NSString *)serviceID{
return @"Telegram";
}
- (NSString *)serviceClass{
return @"Telegram";
}
- (NSString *)shortDescription{
return @"Telegram";
}
2014-10-05 12:19:15 +02:00
- (NSString *)longDescription{
return @"Telegram";
}
- (NSString *)userNameLabel
{
2014-10-09 20:21:12 +02:00
return @"Phone number\n(with country prefix)";
}
- (BOOL)supportsProxySettings{
return YES;
}
- (BOOL)supportsPassword
{
return NO;
}
- (BOOL)requiresPassword
{
2014-10-05 12:19:15 +02:00
return NO;
}
2014-10-05 12:19:15 +02:00
- (BOOL)canCreateGroupChats
{
2014-10-05 12:19:15 +02:00
return YES;
}
2014-10-05 12:19:15 +02:00
- (NSString *)UIDPlaceholder
{
return @"e.g. +49157123456";
}
- (BOOL)isSocialNetworkingService
{
2014-10-09 20:21:12 +02:00
return NO;
}
2014-10-05 12:19:15 +02:00
- (AIServiceImportance)serviceImportance{
return AIServiceSecondary;
}
- (NSCharacterSet *)allowedCharacters{
return [[NSCharacterSet illegalCharacterSet] invertedSet];
}
2014-10-05 12:19:15 +02:00
- (NSCharacterSet *)allowedCharactersForAccountName
{
return ([NSCharacterSet characterSetWithCharactersInString: @"+1234567890"]);
}
- (NSUInteger)allowedLengthForAccountName
{
return 16;
}
- (BOOL)caseSensitive{
return NO;
}
2014-10-05 12:19:15 +02:00
- (NSImage *)defaultServiceIconOfType:(AIServiceIconType)iconType
{
2014-10-05 12:19:15 +02:00
if ((iconType == AIServiceIconSmall) || (iconType == AIServiceIconList)) {
return [NSImage imageNamed:@"telegram16" forClass:[self class] loadLazily:YES];
} else {
return [NSImage imageNamed:@"telegram" forClass:[self class] loadLazily:YES];
}
}
- (NSString *)pathForDefaultServiceIconOfType:(AIServiceIconType)iconType
{
if ((iconType == AIServiceIconSmall) || (iconType == AIServiceIconList)) {
return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"telegram16"];
}
return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"telegram"];
}
- (void)registerStatuses {
#define ADDSTATUS(name, type) \
[adium.statusController registerStatus:name \
withDescription:[adium.statusController localizedDescriptionForCoreStatusName:name] \
ofType:type forService:self]
[adium.statusController registerStatus:STATUS_NAME_AVAILABLE withDescription:[adium.statusController localizedDescriptionForCoreStatusName:STATUS_NAME_AVAILABLE] ofType:AIAvailableStatusType forService:self];
ADDSTATUS(STATUS_NAME_AVAILABLE, AIAvailableStatusType);
ADDSTATUS(STATUS_NAME_NOT_AVAILABLE, AIAvailableStatusType);
ADDSTATUS(STATUS_NAME_OFFLINE, AIOfflineStatusType);
}
@end