Android Open Source - RealtimeMessaging-Android Presence






From Project

Back to project page RealtimeMessaging-Android.

License

The source code is released under:

MIT License

If you think the Android project RealtimeMessaging-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package ibt.ortc.api;
/*from   www .  j  ava  2s  . com*/

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

public class Presence {
  
  private long subscriptions;
  private Map<String,Long> metadata;
  
  private Presence(){
    this.subscriptions = 0;
        // CAUSE: Instantiating collection without specified initial capacity
        this.metadata = new HashMap<String, Long>(16);
  }  
  
  private void setSubscriptions(long subscriptions){
    this.subscriptions = subscriptions;
  }
  
  public long getSubscriptions(){
    return subscriptions;
  }
  
    public Map<String,Long> getMetadata(){
    return metadata;
  }
  
    
    // CAUSE: Method names should start with a lower case letter
    private static Presence deserialize(String message){
    Presence result = new Presence();
    
    if(!Strings.isNullOrEmpty(message))
    {
      JSONObject json = (JSONObject) (JSONValue.parse(message));
      
      if (json != null) {
        result.setSubscriptions((Long) json.get("subscriptions"));
        
        JSONObject jsonMetadata = (JSONObject)json.get("metadata");
        if(jsonMetadata != null){
          @SuppressWarnings("unchecked")
          Iterator<?> iter = ((Map<String, Long>) jsonMetadata).entrySet().iterator();
          while (iter.hasNext()) {
            @SuppressWarnings("unchecked")
            Map.Entry<String, Long> entry = (Map.Entry<String, Long>) iter.next();
            
            result.metadata.put(entry.getKey(), entry.getValue());
          }
        }
      }
    }    
    
    return result;
  }
  
  protected static void getPresence(String url, Boolean isCluster, final String applicationKey, final String authenticationToken, final String channel, final OnPresence callback){
    try {
      Balancer.getServerUrlAsyn(url, isCluster, applicationKey, new OnRestWebserviceResponse() {      
        @Override
        public void run(Exception error, String presenceUrl) {
          if(error != null){
            callback.run(error, null);
          }else{
            // CAUSE: Prefer String.format to +
                presenceUrl = Strings.isNullOrEmpty(presenceUrl) ? presenceUrl : presenceUrl.charAt(presenceUrl.length() -1) == '/' ? presenceUrl : String.format("%s/", presenceUrl);
            
                // CAUSE: Prefer String.format to +
                presenceUrl += String.format("presence/%s/%s/%s", applicationKey, authenticationToken, channel);
            
            try {
              URL requestUrl = new URL(presenceUrl);
              
              RestWebservice.getAsync(requestUrl, new OnRestWebserviceResponse() {
                
                @Override
                public void run(Exception error, String response) {
                  if(error != null){
                    callback.run(error, null);
                  }else{
                                Presence result = Presence.deserialize(response);
                    callback.run(null, result);
                  }          
                }
              });      
                } catch (IOException e) {
              callback.run(e, null);
            }
          }
        }
      });
    } catch (MalformedURLException e) {
      callback.run(e, null);
    }
  }
  
  protected static void enablePresence(String url,Boolean isCluster,final String applicationKey, final String privateKey, final String channel, final Boolean metadata,final OnEnablePresence callback){
    try {
      Balancer.getServerUrlAsyn(url, isCluster, applicationKey, new OnRestWebserviceResponse() {      
        @Override
        public void run(Exception error, String presenceUrl) {
          if(error != null){
            callback.run(error, null);
          }else{
            presenceUrl = Strings.isNullOrEmpty(presenceUrl) ? presenceUrl : presenceUrl.charAt(presenceUrl.length() -1) == '/' ? presenceUrl : String.format("%s/", presenceUrl);
            
                // CAUSE: Prefer String.format to +
                presenceUrl += String.format("presence/enable/%s/%s", applicationKey, channel);
            
                // CAUSE: Prefer String.format to +
                String content = String.format("privatekey=%s", privateKey);
            if(metadata){
              content += "&metadata=1";
            }
            
            try {
              URL requestUrl = new URL(presenceUrl);
              
              RestWebservice.postAsync(requestUrl,content, new OnRestWebserviceResponse() {
                
                @Override
                public void run(Exception error, String response) {
                  if(error != null){
                    callback.run(error, null);
                  }else{
                    callback.run(null, response);
                  }          
                }
              });      
                } catch (IOException e) {
              callback.run(e, null);
            }
          }
        }
      });
    } catch (MalformedURLException e) {
      callback.run(e, null);
    }
  }
  
  protected static void disablePresence(String url,Boolean isCluster,final String applicationKey, final String privateKey, final String channel, final OnDisablePresence callback){
    try {
      Balancer.getServerUrlAsyn(url, isCluster, applicationKey, new OnRestWebserviceResponse() {      
        @Override
        public void run(Exception error, String presenceUrl) {
          if(error != null){
            callback.run(error, null);
          }else{
            // CAUSE: Prefer String.format to +
                presenceUrl = Strings.isNullOrEmpty(presenceUrl) ? presenceUrl : presenceUrl.charAt(presenceUrl.length() -1) == '/' ? presenceUrl : String.format("%s/", presenceUrl);
            
                // CAUSE: Prefer String.format to +
                presenceUrl += String.format("presence/disable/%s/%s", applicationKey, channel);
            
                // CAUSE: Prefer String.format to +
                String content = String.format("privatekey=%s", privateKey);
            
            try {
              URL requestUrl = new URL(presenceUrl);
              
              RestWebservice.postAsync(requestUrl,content, new OnRestWebserviceResponse() {
                
                @Override
                public void run(Exception error, String response) {
                  if(error != null){
                    callback.run(error, null);
                  }else{
                    callback.run(null, response);
                  }          
                }
              });      
                } catch (IOException e) {
              callback.run(e, null);
            }
          }
        }
      });
    } catch (MalformedURLException e) {
      callback.run(e, null);
    }
  }
}




Java Source Code List

ibt.ortc.api.ApplicationTest.java
ibt.ortc.api.Authentication.java
ibt.ortc.api.Balancer.java
ibt.ortc.api.ChannelPermissions.java
ibt.ortc.api.InvalidBalancerServerException.java
ibt.ortc.api.OnDisablePresence.java
ibt.ortc.api.OnEnablePresence.java
ibt.ortc.api.OnPresence.java
ibt.ortc.api.OnRestWebserviceResponse.java
ibt.ortc.api.OrtcAuthenticationNotAuthorizedException.java
ibt.ortc.api.Ortc.java
ibt.ortc.api.Pair.java
ibt.ortc.api.Presence.java
ibt.ortc.api.RestWebservice.java
ibt.ortc.api.SecureWebConnections.java
ibt.ortc.api.Strings.java
ibt.ortc.extensibility.ChannelSubscription.java
ibt.ortc.extensibility.CharEscaper.java
ibt.ortc.extensibility.ConnectionProtocol.java
ibt.ortc.extensibility.DispatchedMessages.java
ibt.ortc.extensibility.EventEnum.java
ibt.ortc.extensibility.GcmOrtcBroadcastReceiver.java
ibt.ortc.extensibility.GcmOrtcIntentService.java
ibt.ortc.extensibility.GcmRegistration.java
ibt.ortc.extensibility.HeartbeatSender.java
ibt.ortc.extensibility.OnConnected.java
ibt.ortc.extensibility.OnDisconnected.java
ibt.ortc.extensibility.OnException.java
ibt.ortc.extensibility.OnMessageWithPayload.java
ibt.ortc.extensibility.OnMessage.java
ibt.ortc.extensibility.OnReconnected.java
ibt.ortc.extensibility.OnReconnecting.java
ibt.ortc.extensibility.OnSubscribed.java
ibt.ortc.extensibility.OnUnsubscribed.java
ibt.ortc.extensibility.OrtcClient.java
ibt.ortc.extensibility.OrtcFactory.java
ibt.ortc.extensibility.exception.OrtcAlreadyConnectedException.java
ibt.ortc.extensibility.exception.OrtcDoesNotHavePermissionException.java
ibt.ortc.extensibility.exception.OrtcEmptyFieldException.java
ibt.ortc.extensibility.exception.OrtcGcmException.java
ibt.ortc.extensibility.exception.OrtcInvalidCharactersException.java
ibt.ortc.extensibility.exception.OrtcMaxLengthException.java
ibt.ortc.extensibility.exception.OrtcNotConnectedException.java
ibt.ortc.extensibility.exception.OrtcNotSubscribedException.java
ibt.ortc.extensibility.exception.OrtcSubscribedException.java
ibt.ortc.ortclib.ApplicationTest.java
ibt.ortc.ortclib.MainActivity.java
ibt.ortc.ortclib.SettingsActivity.java
ibt.ortc.plugins.IbtRealtimeSJ.IbtRealtimeSJClient.java
ibt.ortc.plugins.IbtRealtimeSJ.IbtRealtimeSJFactory.java
ibt.ortc.plugins.IbtRealtimeSJ.OrtcMessage.java
ibt.ortc.plugins.IbtRealtimeSJ.OrtcOperation.java
ibt.ortc.plugins.IbtRealtimeSJ.OrtcServerErrorException.java
ibt.ortc.plugins.websocket.WebSocketConnection.java
ibt.ortc.plugins.websocket.WebSocketEventHandler.java
ibt.ortc.plugins.websocket.WebSocketException.java
ibt.ortc.plugins.websocket.WebSocketHandshake.java
ibt.ortc.plugins.websocket.WebSocketMessage.java
ibt.ortc.plugins.websocket.WebSocketReceiver.java
ibt.ortc.plugins.websocket.WebSocketSender.java
ibt.ortc.plugins.websocket.WebSocket.java