mirror of
https://github.com/gsantner/dandelion
synced 2024-11-22 12:22:08 +01:00
Let elements other than the webView use the proxy (HttpsUrlConnections)
This commit is contained in:
parent
61c92349aa
commit
af0070df66
3 changed files with 60 additions and 28 deletions
|
@ -28,12 +28,6 @@ import android.util.Log;
|
||||||
|
|
||||||
import com.github.dfa.diaspora_android.App;
|
import com.github.dfa.diaspora_android.App;
|
||||||
|
|
||||||
import org.apache.http.HttpEntity;
|
|
||||||
import org.apache.http.HttpResponse;
|
|
||||||
import org.apache.http.StatusLine;
|
|
||||||
import org.apache.http.client.HttpClient;
|
|
||||||
import org.apache.http.client.methods.HttpGet;
|
|
||||||
import org.apache.http.impl.client.DefaultHttpClient;
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
@ -44,6 +38,10 @@ import java.io.InputStreamReader;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
|
||||||
|
import info.guardianproject.netcipher.NetCipher;
|
||||||
|
|
||||||
public class GetPodsService extends Service {
|
public class GetPodsService extends Service {
|
||||||
public static final String MESSAGE_PODS_RECEIVED = "com.github.dfa.diaspora.podsreceived";
|
public static final String MESSAGE_PODS_RECEIVED = "com.github.dfa.diaspora.podsreceived";
|
||||||
private static final String TAG = App.TAG;
|
private static final String TAG = App.TAG;
|
||||||
|
@ -73,24 +71,28 @@ public class GetPodsService extends Service {
|
||||||
// TODO: Update deprecated code
|
// TODO: Update deprecated code
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
HttpClient client = new DefaultHttpClient();
|
//HttpClient client = new DefaultHttpClient();
|
||||||
List<String> list = null;
|
List<String> list = null;
|
||||||
|
HttpsURLConnection connection;
|
||||||
|
InputStream inStream;
|
||||||
try {
|
try {
|
||||||
HttpGet httpGet = new HttpGet("http://podupti.me/api.php?key=4r45tg&format=json");
|
connection = NetCipher.getHttpsURLConnection("https://podupti.me/api.php?key=4r45tg&format=json");
|
||||||
HttpResponse response = client.execute(httpGet);
|
int statusCode = connection.getResponseCode();
|
||||||
StatusLine statusLine = response.getStatusLine();
|
|
||||||
int statusCode = statusLine.getStatusCode();
|
|
||||||
if (statusCode == 200) {
|
if (statusCode == 200) {
|
||||||
HttpEntity entity = response.getEntity();
|
inStream = connection.getInputStream();
|
||||||
InputStream content = entity.getContent();
|
|
||||||
BufferedReader reader = new BufferedReader(
|
BufferedReader reader = new BufferedReader(
|
||||||
new InputStreamReader(content));
|
new InputStreamReader(inStream));
|
||||||
String line;
|
String line;
|
||||||
while ((line = reader.readLine()) != null) {
|
while ((line = reader.readLine()) != null) {
|
||||||
builder.append(line);
|
builder.append(line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
inStream.close();
|
||||||
|
} catch (IOException e) {/*Nothing to do*/}
|
||||||
|
|
||||||
|
connection.disconnect();
|
||||||
} else {
|
} else {
|
||||||
//TODO Notify User about failure
|
|
||||||
Log.e(TAG, "Failed to download list of pods");
|
Log.e(TAG, "Failed to download list of pods");
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -136,4 +138,4 @@ public class GetPodsService extends Service {
|
||||||
throw new UnsupportedOperationException("Not yet implemented");
|
throw new UnsupportedOperationException("Not yet implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -13,7 +13,12 @@ import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
|
||||||
|
import info.guardianproject.netcipher.NetCipher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Task that can be used to download images from URLs and store them in storage
|
||||||
* Created by Gregor Santner (gsantner) on 24.03.16.
|
* Created by Gregor Santner (gsantner) on 24.03.16.
|
||||||
*/
|
*/
|
||||||
public class ImageDownloadTask extends AsyncTask<String, Void, Bitmap> {
|
public class ImageDownloadTask extends AsyncTask<String, Void, Bitmap> {
|
||||||
|
@ -35,9 +40,12 @@ public class ImageDownloadTask extends AsyncTask<String, Void, Bitmap> {
|
||||||
String url = urls[0];
|
String url = urls[0];
|
||||||
Bitmap bitmap = null;
|
Bitmap bitmap = null;
|
||||||
FileOutputStream out = null;
|
FileOutputStream out = null;
|
||||||
|
InputStream inStream;
|
||||||
|
HttpsURLConnection connection;
|
||||||
try {
|
try {
|
||||||
InputStream in = new java.net.URL(url).openStream();
|
connection = NetCipher.getHttpsURLConnection(url);
|
||||||
bitmap = BitmapFactory.decodeStream(in);
|
inStream = connection.getInputStream();
|
||||||
|
bitmap = BitmapFactory.decodeStream(inStream);
|
||||||
|
|
||||||
// Save to file if not null
|
// Save to file if not null
|
||||||
if (savePath != null) {
|
if (savePath != null) {
|
||||||
|
@ -45,6 +53,12 @@ public class ImageDownloadTask extends AsyncTask<String, Void, Bitmap> {
|
||||||
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
|
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
inStream.close();
|
||||||
|
} catch (IOException e) {/*Nothing*/}
|
||||||
|
|
||||||
|
connection.disconnect();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(App.TAG, e.getMessage());
|
Log.e(App.TAG, e.getMessage());
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -64,4 +78,4 @@ public class ImageDownloadTask extends AsyncTask<String, Void, Bitmap> {
|
||||||
imageView.setImageBitmap(result);
|
imageView.setImageBitmap(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,11 +10,16 @@ import com.github.dfa.diaspora_android.data.PodUserProfile;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
|
import javax.net.ssl.HttpsURLConnection;
|
||||||
|
|
||||||
|
import info.guardianproject.netcipher.NetCipher;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* AsyncTask to fetch a users profile
|
||||||
* Created by Gregor Santner (gsantner) on 30.03.16.
|
* Created by Gregor Santner (gsantner) on 30.03.16.
|
||||||
*/
|
*/
|
||||||
public class ProfileFetchTask extends AsyncTask<Void, Void, Void> {
|
public class ProfileFetchTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
@ -37,18 +42,21 @@ public class ProfileFetchTask extends AsyncTask<Void, Void, Void> {
|
||||||
String cookies = cookieManager.getCookie("https://" + app.getSettings().getPodDomain());
|
String cookies = cookieManager.getCookie("https://" + app.getSettings().getPodDomain());
|
||||||
Log.d(App.TAG, cookies);
|
Log.d(App.TAG, cookies);
|
||||||
|
|
||||||
|
HttpsURLConnection connection;
|
||||||
|
InputStream inStream;
|
||||||
try {
|
try {
|
||||||
URL url = new URL("https://" + app.getSettings().getPodDomain() + "/stream");
|
URL url = new URL("https://" + app.getSettings().getPodDomain() + "/stream");
|
||||||
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
connection = NetCipher.getHttpsURLConnection(url);
|
||||||
conn.setReadTimeout(10000);
|
connection.setReadTimeout(10000);
|
||||||
conn.setConnectTimeout(15000);
|
connection.setConnectTimeout(15000);
|
||||||
conn.setRequestMethod("GET");
|
connection.setRequestMethod("GET");
|
||||||
if (cookies != null) {
|
if (cookies != null) {
|
||||||
conn.setRequestProperty("Cookie", cookies);
|
connection.setRequestProperty("Cookie", cookies);
|
||||||
}
|
}
|
||||||
conn.connect();
|
connection.connect();
|
||||||
|
|
||||||
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
|
inStream = connection.getInputStream();
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(inStream));
|
||||||
String line;
|
String line;
|
||||||
final String TARGET_TAG = "window.gon={};gon.user=";
|
final String TARGET_TAG = "window.gon={};gon.user=";
|
||||||
while ((line = br.readLine()) != null && !line.startsWith("<body")) {
|
while ((line = br.readLine()) != null && !line.startsWith("<body")) {
|
||||||
|
@ -57,6 +65,14 @@ public class ProfileFetchTask extends AsyncTask<Void, Void, Void> {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
br.close();
|
||||||
|
inStream.close();
|
||||||
|
} catch (IOException e){/*Nothing*/}
|
||||||
|
|
||||||
|
connection.disconnect();
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -70,4 +86,4 @@ public class ProfileFetchTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue