adium/adium
Clone
Summary
Browse
Changes
Graph
Update version number in Info.plist. Add a ticket number to Changes.txt.
adium-1.5.10.3
2017-03-24, Robert Vehse
6194bf1c1f66
Update version number in Info.plist. Add a ticket number to Changes.txt.
/*
* Adium is the legal property of its developers, whose names are listed in the copyright file included
* with this source distribution.
*
* 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "ESPurpleGaduGaduAccountViewController.h"
#import "ESPurpleGaduGaduAccount.h"
#import <Adium/AIStatusControllerProtocol.h>
#import <Adium/AIAccountControllerProtocol.h>
#import <Adium/AIListContact.h>
#import <Adium/AIStatus.h>
#import <libpurple/gg.h>
#import <libpurple/buddylist.h>
#import <AIUtilities/AIAttributedStringAdditions.h>
#import <AIUtilities/AIStringAdditions.h>
#define MAX_GADU_STATUS_MESSAGE_LENGTH 70
@implementation
ESPurpleGaduGaduAccount
-
(
const
char
*
)
protocolPlugin
{
return
"prpl-gg"
;
}
-
(
NSString
*
)
connectionStringForStep:
(
NSInteger
)
step
{
switch
(
step
)
{
case
0
:
return
AILocalizedString
(
@"Connecting"
,
nil
);
break
;
case
1
:
return
AILocalizedString
(
@"Looking up server"
,
nil
);
break
;
case
2
:
return
AILocalizedString
(
@"Reading data"
,
"Connection step"
);
break
;
case
3
:
return
AILocalizedString
(
@"Balancer handshake"
,
"Connection step"
);
break
;
case
4
:
return
AILocalizedString
(
@"Reading server key"
,
"Connection step"
);
break
;
case
5
:
return
AILocalizedString
(
@"Exchanging key hash"
,
"Connection step"
);
break
;
}
return
nil
;
}
-
(
void
)
uploadContactListToServer
{
#warning Temporarily disable contact list sync with servers
return
;
char
*
buddylist
=
ggp_buddylist_dump
(
account
);
if
(
buddylist
)
{
PurpleConnection
*
gc
=
purple_account_get_connection
(
account
);
GGPInfo
*
info
=
gc
->
proto_data
;
AILog
(
@"Uploading gadu-gadu list..."
);
gg_userlist_request
(
info
->
session
,
GG_USERLIST_PUT
,
buddylist
);
g_free
(
buddylist
);
}
}
-
(
void
)
moveListObjects:
(
NSArray
*
)
objects
toGroups:
(
NSSet
*
)
groups
{
[
super
moveListObjects
:
objects
fromGroups
:
[
NSSet
set
]
toGroups
:
groups
];
[
self
uploadContactListToServer
];
}
-
(
void
)
addContact:
(
AIListContact
*
)
contact
toGroup:
(
AIListGroup
*
)
group
{
[
super
addContact
:
contact
toGroup
:
group
];
[
self
uploadContactListToServer
];
}
-
(
void
)
removeContacts:
(
NSArray
*
)
objects
fromGroups:
(
NSArray
*
)
groups
{
[
super
removeContacts
:
objects
fromGroups
:
groups
];
[
self
uploadContactListToServer
];
}
-
(
void
)
downloadContactListFromServer
{
#warning Temporarily disable contact list sync with servers
return
;
// If we're connected and have no buddies, request 'em from the server.
PurpleConnection
*
gc
=
purple_account_get_connection
(
account
);
GGPInfo
*
info
=
gc
->
proto_data
;
AILog
(
@"Requesting gadu-gadu list..."
);
gg_userlist_request
(
info
->
session
,
GG_USERLIST_GET
,
NULL
);
}
-
(
void
)
accountConnectionConnected
{
[
self
downloadContactListFromServer
];
[
super
accountConnectionConnected
];
}
/*!
* @brief Should offline messages be sent without prompting the user?
*
* Gadu-Gadu users make use of offline messaging heavily, possibly because of the prevelance of invisibile status usage.
* The official client sends offline messages without prompting; we will, too.
*/
-
(
BOOL
)
sendOfflineMessagesWithoutPrompting
{
return
YES
;
}
-
(
BOOL
)
handleOfflineAsStatusChange
{
return
YES
;
}
/*!
* @brief Should we add a musical note when indicating a now playing status?
* The note doesn't come out properly on Gadu-Gadu, presumably due to encoding issues.
*/
-
(
BOOL
)
shouldAddMusicalNoteToNowPlayingStatus
{
return
NO
;
}
#pragma mark Menu Actions
-
(
NSString
*
)
titleForAccountActionMenuLabel:
(
const
char
*
)
label
{
if
(
strcmp
(
label
,
_
(
"Delete buddylist from Server"
))
==
0
)
return
nil
;
return
[
super
titleForAccountActionMenuLabel
:
label
];
}
@end