package com.gettingmobile.goodnews.settings; import android.content.Context; import android.util.Log; import com.gettingmobile.goodnews.storage.StorageProvider; import com.gettingmobile.goodnews.storage.StorageProviderFactory; import com.gettingmobile.rest.ProxyConfiguration; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class ProxyFileConfiguration { private static final String LOG_TAG = "goodnews.ProxyFileConfiguration"; public static void init(Context context) { final StorageProvider storage = StorageProviderFactory.createStorageProvider(context, StorageProvider.Storage.EXTERNAL); final File proxyConfigFile = storage.getFile("prefs", "proxy"); if (proxyConfigFile.exists()) { final Properties proxyConfig = new Properties(); try { final InputStream proxyConfigStream = new FileInputStream(proxyConfigFile); try { proxyConfig.load(proxyConfigStream); } finally { proxyConfigStream.close(); } final String host = proxyConfig.getProperty("host"); final int port = Integer.decode(proxyConfig.getProperty("port", "0")); Log.i(LOG_TAG, "Found proxy configuration: " + host + ":" + port); System.setProperty(ProxyConfiguration.PROPERTY_HOST, host); System.setProperty(ProxyConfiguration.PROPERTY_PORT, Integer.toString(port)); Log.i(LOG_TAG, "Stored proxy configuration: " + System.getProperty(ProxyConfiguration.PROPERTY_HOST) + ":" + System.getProperty(ProxyConfiguration.PROPERTY_PORT)); } catch (IOException ex) { Log.e(LOG_TAG, "Failed to read proxy configuration file from " + proxyConfigFile, ex); } catch (NumberFormatException ex) { Log.e(LOG_TAG, "Invalid proxy port: " + proxyConfig.getProperty("port")); } } else { Log.i(LOG_TAG, "No proxy configuration found at " + proxyConfigFile); } } }