Skip to content

Commit 269b8b3

Browse files
author
Anya Zenkina
committed
add support for client events
1 parent 3c636c3 commit 269b8b3

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

src/main/java/com/pusher/client/channel/impl/PresenceChannelImpl.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class PresenceChannelImpl extends PrivateChannelImpl implements PresenceC
3434
private String myUserID;
3535

3636
public PresenceChannelImpl(final InternalConnection connection, final String channelName,
37-
final Authorizer authorizer, final Factory factory) {
37+
final Authorizer authorizer, final Factory factory) {
3838
super(connection, channelName, authorizer, factory);
3939
}
4040

@@ -87,9 +87,13 @@ public void onMessage(final String event, final String message) {
8787
getFactory().queueOnEventThread(new Runnable() {
8888
@Override
8989
public void run() {
90-
listener.onEvent(name, event, data);
90+
if (event.startsWith(CLIENT_EVENT_PREFIX)) {
91+
listener.onEventWithMetadata(name, event, data, metadata);
92+
}
93+
else {
94+
listener.onEvent(name, event, data);
95+
}
9196

92-
listener.onEventWithMetadata(name, event, data, metadata);
9397
}
9498
});
9599
}
@@ -116,7 +120,7 @@ public String toSubscribeMessage() {
116120

117121
try {
118122
final Map authResponseMap = GSON.fromJson(authResponse, Map.class);
119-
final String authKey = (String)authResponseMap.get("auth");
123+
final String authKey = (String) authResponseMap.get("auth");
120124
final Object channelData = authResponseMap.get("channel_data");
121125

122126
storeMyUserId(channelData);
@@ -134,8 +138,7 @@ public String toSubscribeMessage() {
134138
final String json = GSON.toJson(jsonObject);
135139

136140
return json;
137-
}
138-
catch (final Exception e) {
141+
} catch (final Exception e) {
139142
throw new AuthorizationFailureException("Unable to parse response from Authorizer: " + authResponse, e);
140143
}
141144
}
@@ -180,15 +183,15 @@ public void unbind(final String eventName, final SubscriptionEventListener liste
180183

181184
@Override
182185
protected String[] getDisallowedNameExpressions() {
183-
return new String[] { "^(?!presence-).*" };
186+
return new String[]{"^(?!presence-).*"};
184187
}
185188

186189
@Override
187190
public String toString() {
188191
return String.format("[Presence Channel: name=%s]", name);
189192
}
190193

191-
@SuppressWarnings({ "rawtypes", "unchecked" })
194+
@SuppressWarnings({"rawtypes", "unchecked"})
192195
private void handleSubscriptionSuccessfulMessage(final String message) {
193196

194197
// extract data from the JSON message
@@ -206,7 +209,7 @@ private void handleSubscriptionSuccessfulMessage(final String message) {
206209
}
207210
final ChannelEventListener listener = getEventListener();
208211
if (listener != null) {
209-
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener)listener;
212+
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener) listener;
210213
presenceListener.onUsersInformationReceived(getName(), getUsers());
211214
}
212215
}
@@ -218,14 +221,14 @@ private void handleMemberAddedEvent(final String message) {
218221

219222

220223
final String id = memberData.userId;
221-
final String userData = memberData.userInfo!= null ? GSON.toJson(memberData.userInfo) : null;
224+
final String userData = memberData.userInfo != null ? GSON.toJson(memberData.userInfo) : null;
222225

223226
final User user = new User(id, userData);
224227
idToUserMap.put(id, user);
225228

226229
final ChannelEventListener listener = getEventListener();
227230
if (listener != null) {
228-
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener)listener;
231+
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener) listener;
229232
presenceListener.userSubscribed(getName(), user);
230233
}
231234
}
@@ -240,7 +243,7 @@ private void handleMemberRemovedEvent(final String message) {
240243

241244
final ChannelEventListener listener = getEventListener();
242245
if (listener != null) {
243-
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener)listener;
246+
final PresenceChannelEventListener presenceListener = (PresenceChannelEventListener) listener;
244247
presenceListener.userUnsubscribed(getName(), user);
245248
}
246249
}
@@ -264,7 +267,7 @@ private static PresenceData extractPresenceDataFrom(final String message) {
264267

265268
@SuppressWarnings("rawtypes")
266269
private void storeMyUserId(final Object channelData) {
267-
final Map channelDataMap = GSON.fromJson((String)channelData, Map.class);
270+
final Map channelDataMap = GSON.fromJson((String) channelData, Map.class);
268271
myUserID = String.valueOf(channelDataMap.get("user_id"));
269272
}
270273

0 commit comments

Comments
 (0)