package com.airlocksoftware.hackernews.data;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.util.Log;
import com.airlocksoftware.hackernews.application.MainApplication;
import com.crashlytics.android.Crashlytics;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
/** Static methods for connecting to the http://news.ycombinator.com **/
public class ConnectionManager {
public static final String TAG = ConnectionManager.class.getSimpleName();
public static final String BASE_URL = "https://news.ycombinator.com";
public static final String ITEMS_URL = "/item?id=";
public static final String THREADS_URL = "/threads?id=";
public static final String SUBMISSIONS_URL = "/submitted?id=";
public static final String SUBMIT_URL = "/submit";
public static final String USER_AGENT = System.getProperty("http.agent");
public static final int TIMEOUT_MILLIS = 40 * 1000;
/** Connects to news.ycombinator.com using the cookie you've provided **/
public static Connection authConnect(String baseUrlExtension, String userCookie) {
return anonConnect(baseUrlExtension).cookie("user", userCookie);
}
/** Connects to news.ycombinator.com with no user cookie authentication **/
public static Connection anonConnect(String baseUrlExtension) {
Connection conn = Jsoup.connect(ConnectionManager.BASE_URL + baseUrlExtension)
.timeout(TIMEOUT_MILLIS)
.userAgent(ConnectionManager.USER_AGENT);
UserPrefs prefs = new UserPrefs(MainApplication.getInstance().getApplicationContext());
boolean compress = prefs.getCompressData();
Crashlytics.setBool("ConnectionManager :: GZip Responses", compress);
if (compress) {
conn.header("Accept-Encoding", "gzip");
}
return conn;
}
/** Converts an id into a string containing the extension (everything that goes after .com) of the URL **/
public static String itemIdToUrlExtension(long id) {
return ITEMS_URL + Long.toString(id);
}
/** Converts an id into a string the full URL for that id. **/
public static String itemIdToUrl(long id) {
return BASE_URL + itemIdToUrlExtension(id);
}
}