Android Open Source - libgdx-chat-example Android Dispatch Service Async






From Project

Back to project page libgdx-chat-example.

License

The source code is released under:

Apache License

If you think the Android project libgdx-chat-example 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 org.stofkat.chat.android;
/*from  w ww  .j ava 2 s.  c om*/
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.stofkat.chat.common.actions.Action;
import org.stofkat.chat.common.results.Result;
import org.stofkat.chat.http.dispatch.AsyncCallback;
import org.stofkat.chat.http.dispatch.CustomCookieStore;
import org.stofkat.chat.http.dispatch.HttpDispatchServiceAsync;
import org.stofkat.chat.http.dispatch.HttpUtils;

import android.os.Handler;
import android.os.Looper;

public class AndroidDispatchServiceAsync implements HttpDispatchServiceAsync {
  /**
   * Replace stofkat.org with the IP address of your server.
   */
  private final String dispatchServiceUri = "http://leejjon.net:8080/chat/Chat-http";
  private HttpClient httpClient;
  private CustomCookieStore cookieStore;
  
  public AndroidDispatchServiceAsync() {
    // Create and initialize HTTP parameters
    HttpParams params = new BasicHttpParams();
    
    ConnManagerParams.setMaxTotalConnections(params, 100);
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

    // Create and initialize scheme registry
    SchemeRegistry schemeRegistry = new SchemeRegistry();
    schemeRegistry.register(new Scheme("http", PlainSocketFactory
        .getSocketFactory(), 80));

    // Create an HttpClient with the ThreadSafeClientConnManager.
    // This connection manager must be used if more than one thread will
    // be using the HttpClient.
    ClientConnectionManager cm = new ThreadSafeClientConnManager(params,
        schemeRegistry);
    
    httpClient = HttpUtils.getHttpClient(cm);
    cookieStore = new CustomCookieStore();
  }
  
  public Object getResult(Action<?> action) {
    return HttpUtils.getResult(dispatchServiceUri, httpClient, cookieStore,
        action);
  }
  
  @Override
  @SuppressWarnings("hiding")
  public <R extends Result> void execute(final Action<R> action,
      final AsyncCallback<R> callback) {
    // allows non-"edt" thread to be re-inserted into the "edt" queue
    final Handler uiThreadCallback = new Handler(Looper.getMainLooper()); 
    // Leejjon: Added Looper.getMainLooper() to the Handler constructor because it gave this error when a second call was initiated from another thread:
    // http://stackoverflow.com/questions/4187960/asynctask-and-looper-prepare-error
    
    new Thread() {
      @Override
      public void run() {
        final Object result = getResult(action);
        // performs rendering in the "edt" thread, after background
        // operation is
        // complete
        final Runnable runInUIThread = new Runnable() {
          @Override
          public void run() {
            HttpUtils.processResult(result, callback);
          }

        };
        uiThreadCallback.post(runInUIThread);
      }
    }.start();
  }
}




Java Source Code List

org.stofkat.chat.android.AndroidChat.java
org.stofkat.chat.android.AndroidDispatchServiceAsync.java
org.stofkat.chat.android.ChatActivity.java
org.stofkat.chat.common.ChatMessage.java
org.stofkat.chat.common.ClientInterface.java
org.stofkat.chat.common.actions.Action.java
org.stofkat.chat.common.actions.ChatAction.java
org.stofkat.chat.common.actions.UpdateAction.java
org.stofkat.chat.common.exceptions.ActionException.java
org.stofkat.chat.common.exceptions.DispatchException.java
org.stofkat.chat.common.exceptions.ServiceException.java
org.stofkat.chat.common.exceptions.UnsupportedActionException.java
org.stofkat.chat.common.results.ChatResult.java
org.stofkat.chat.common.results.Result.java
org.stofkat.chat.common.util.HashMapToOrderedArray.java
org.stofkat.chat.common.util.LowestIdFinder.java
org.stofkat.chat.core.ChatTextField.java
org.stofkat.chat.core.Chat.java
org.stofkat.chat.core.PickNameStage.java
org.stofkat.chat.core.ServerInterface.java
org.stofkat.chat.core.UpdateTask.java
org.stofkat.chat.html.ChatHtml.java
org.stofkat.chat.html.HtmlChat.java
org.stofkat.chat.html.dispatch.GwtAsyncCallbackHandler.java
org.stofkat.chat.html.dispatch.GwtDispatchServiceAsync.java
org.stofkat.chat.html.dispatch.GwtDispatchService.java
org.stofkat.chat.http.dispatch.AsyncCallbackHandler.java
org.stofkat.chat.http.dispatch.AsyncCallback.java
org.stofkat.chat.http.dispatch.CustomCookieStore.java
org.stofkat.chat.http.dispatch.HttpDispatchServiceAsync.java
org.stofkat.chat.http.dispatch.HttpUtils.java
org.stofkat.chat.java.ChatDesktop.java
org.stofkat.chat.java.DesktopChat.java
org.stofkat.chat.java.DesktopDispatchServiceAsync.java
org.stofkat.chat.server.AbstractDispatch.java
org.stofkat.chat.server.ActionHandlerRegistry.java
org.stofkat.chat.server.ActionHandler.java
org.stofkat.chat.server.ActionResult.java
org.stofkat.chat.server.ChatMessagesDatabase.java
org.stofkat.chat.server.DefaultActionHandlerRegistry.java
org.stofkat.chat.server.Dispatch.java
org.stofkat.chat.server.InstanceActionHandlerRegistry.java
org.stofkat.chat.server.SimpleDispatch.java
org.stofkat.chat.server.actionhandlers.ChatActionHandler.java
org.stofkat.chat.server.actionhandlers.UpdateActionHandler.java
org.stofkat.chat.server.gwt.dispatch.GwtDispatchServlet.java
org.stofkat.chat.server.http.dispatch.HttpDispatchServlet.java