/******************************************************************************* * Copyright 2011 See AUTHORS file. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. ******************************************************************************/ package com.badlogic.gdx.backends.android; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.net.URI; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.utils.URIUtils; import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.InputStreamEntity; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.util.EntityUtils; import android.content.Intent; import android.net.Uri; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Net; import com.badlogic.gdx.net.NetJavaImpl; import com.badlogic.gdx.net.ServerSocket; import com.badlogic.gdx.net.ServerSocketHints; import com.badlogic.gdx.net.Socket; import com.badlogic.gdx.net.SocketHints; import com.badlogic.gdx.utils.GdxRuntimeException; import com.badlogic.gdx.utils.JsonWriter; /** * Android implementation of the {@link Net} API. * * @author acoppes */ public class AndroidNet implements Net { // IMPORTANT: The Gdx.net classes are a currently duplicated for LWJGL + Android! // If you make changes here, make changes in the other backend as well. final AndroidApplication app; NetJavaImpl netJavaImpl; public AndroidNet(AndroidApplication activity) { app = activity; netJavaImpl = new NetJavaImpl(); } @Override public void sendHttpRequest(HttpRequest httpRequest, final HttpResponseListener httpResponseListener) { netJavaImpl.sendHttpRequest(httpRequest, httpResponseListener); } @Override public ServerSocket newServerSocket(Protocol protocol, int port, ServerSocketHints hints) { return new AndroidServerSocket(protocol, port, hints); } @Override public Socket newClientSocket(Protocol protocol, String host, int port, SocketHints hints) { return new AndroidSocket(protocol, host, port, hints); } @Override public void openURI(String URI) { final Uri uri = Uri.parse(URI); app.runOnUiThread(new Runnable() { @Override public void run() { app.startActivity(new Intent(Intent.ACTION_VIEW, uri)); } }); } }