// Path: sdk/src/com/sharethis/loopy/sdk/net/HttpClientFactory.java
// public class HttpClientFactory {
// 
//     public static final int DEFAULT_CONNECTION_TIMEOUT = 1000;
//     public static final int DEFAULT_READ_TIMEOUT = 1000;
// 
//     private HttpParams params;
//     private ClientConnectionManager connectionManager;
//     private DefaultHttpClient client; // This should be thread safe
//     private IdleConnectionMonitorThread monitor;
//     private boolean initialized = false;
// 
//     private int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
//     private int readTimeout = DEFAULT_READ_TIMEOUT;
// 
//     public void start(int timeout) {
//         setConnectionTimeout(timeout);
//         setReadTimeout(timeout);
//         init();
//     }
// 
//     public void stop() {
//         destroy();
//     }
// 
//     void init()  {
//         if(!initialized) {
// 
//             params = new BasicHttpParams();
// 
//             HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
//             HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
//             HttpConnectionParams.setConnectionTimeout(params, connectionTimeout);
//             HttpConnectionParams.setSoTimeout(params, readTimeout);
// 
//             SchemeRegistry registry = new SchemeRegistry();
//             registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
//             registry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
// 
//             connectionManager = new ThreadSafeClientConnManager(params, registry);
// 
//             monitor = new IdleConnectionMonitorThread(connectionManager);
//             monitor.setDaemon(true);
//             monitor.start();
//         }
//     }
// 
//     void destroy() {
//         if(initialized) {
//             initialized = false;
//             if(monitor != null) {
//                 monitor.shutdown();
//             }
//             if(connectionManager != null) {
//                 connectionManager.shutdown();
//             }
//         }
//     }
// 
//     public synchronized HttpClient getClient() {
//         if(client == null) {
//             client = new DefaultHttpClient(connectionManager, params);
//         }
//         else {
//             monitor.trigger();
//         }
// 
//         return client;
//     }
// 
//     public int getConnectionTimeout() {
//         return connectionTimeout;
//     }
// 
//     public void setConnectionTimeout(int connectionTimeout) {
//         this.connectionTimeout = connectionTimeout;
//     }
// 
//     public int getReadTimeout() {
//         return readTimeout;
//     }
// 
//     public void setReadTimeout(int readTimeout) {
//         this.readTimeout = readTimeout;
//     }
// }
// 
// Path: sdk/src/com/sharethis/loopy/sdk/util/ResourceLocator.java
// public class ResourceLocator {
//     private ClassLoaderProvider classLoaderProvider = new ClassLoaderProvider();
// 
//     public InputStream locateInAssets(Context context, String name) throws IOException {
//         InputStream in = null;
// 
//         try {
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("Looking for " +
//                         name +
//                         " in asset path...");
//             }
// 
//             in = context.getAssets().open(name);
// 
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("Found " +
//                         name +
//                         " in asset path");
//             }
//         }
//         catch (IOException ignore) {
//             // Ignore this, just means no override.
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("No file found in assets with name [" +
//                         name +
//                         "].");
//             }
//         }
// 
//         return in;
//     }
// 
//     public InputStream locateInClassPath(String name) throws IOException {
// 
//         InputStream in = null;
// 
//         if(classLoaderProvider != null) {
// 
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("Looking for " +
//                         name +
//                         " in classpath...");
//             }
// 
//             in = classLoaderProvider.getClassLoader().getResourceAsStream(name);
// 
//             if(in != null) {
//                 if(Logger.isDebugEnabled()) {
//                     Logger.d("Found " +
//                             name +
//                             " in classpath");
//                 }
//             }
//         }
// 
//         return in;
//     }
// 
//     public InputStream locate(Context context, String name) throws IOException {
// 
//         InputStream in = locateInAssets(context, name);
// 
//         if(in == null) {
//             in = locateInClassPath(name);
//         }
// 
//         if(in == null) {
//             Logger.w("Could not locate [" +
//                     name +
//                     "] in any location");
//         }
// 
//         return in;
//     }
// 
//     public ClassLoaderProvider getClassLoaderProvider() {
//         return classLoaderProvider;
//     }
// 
//     public void setClassLoaderProvider(ClassLoaderProvider classLoaderProvider) {
//         this.classLoaderProvider = classLoaderProvider;
//     }
// }


import android.content.Context;
import com.sharethis.loopy.sdk.net.HttpClientFactory;
import com.sharethis.loopy.sdk.util.ResourceLocator;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

    public String getSecureAPIUrl() {
        return secureApiUrl;
    }

    public int getApiTimeout() {
        return apiTimeout;
    }

    public boolean isDebug() {
        return debug;
    }

    public int getSessionTimeoutSeconds() {
        return sessionTimeoutSeconds;
    }

    String clean(String url) {
        url = url.trim();
        if(!url.endsWith("/")) {
            return url += "/";
        }
        return url;
    }

    // mockable
    Properties newProperties() {
        return new Properties();
    }

// Path: sdk/src/com/sharethis/loopy/sdk/net/HttpClientFactory.java
// public class HttpClientFactory {
// 
//     public static final int DEFAULT_CONNECTION_TIMEOUT = 1000;
//     public static final int DEFAULT_READ_TIMEOUT = 1000;
// 
//     private HttpParams params;
//     private ClientConnectionManager connectionManager;
//     private DefaultHttpClient client; // This should be thread safe
//     private IdleConnectionMonitorThread monitor;
//     private boolean initialized = false;
// 
//     private int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
//     private int readTimeout = DEFAULT_READ_TIMEOUT;
// 
//     public void start(int timeout) {
//         setConnectionTimeout(timeout);
//         setReadTimeout(timeout);
//         init();
//     }
// 
//     public void stop() {
//         destroy();
//     }
// 
//     void init()  {
//         if(!initialized) {
// 
//             params = new BasicHttpParams();
// 
//             HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
//             HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
//             HttpConnectionParams.setConnectionTimeout(params, connectionTimeout);
//             HttpConnectionParams.setSoTimeout(params, readTimeout);
// 
//             SchemeRegistry registry = new SchemeRegistry();
//             registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
//             registry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
// 
//             connectionManager = new ThreadSafeClientConnManager(params, registry);
// 
//             monitor = new IdleConnectionMonitorThread(connectionManager);
//             monitor.setDaemon(true);
//             monitor.start();
//         }
//     }
// 
//     void destroy() {
//         if(initialized) {
//             initialized = false;
//             if(monitor != null) {
//                 monitor.shutdown();
//             }
//             if(connectionManager != null) {
//                 connectionManager.shutdown();
//             }
//         }
//     }
// 
//     public synchronized HttpClient getClient() {
//         if(client == null) {
//             client = new DefaultHttpClient(connectionManager, params);
//         }
//         else {
//             monitor.trigger();
//         }
// 
//         return client;
//     }
// 
//     public int getConnectionTimeout() {
//         return connectionTimeout;
//     }
// 
//     public void setConnectionTimeout(int connectionTimeout) {
//         this.connectionTimeout = connectionTimeout;
//     }
// 
//     public int getReadTimeout() {
//         return readTimeout;
//     }
// 
//     public void setReadTimeout(int readTimeout) {
//         this.readTimeout = readTimeout;
//     }
// }
// 
// Path: sdk/src/com/sharethis/loopy/sdk/util/ResourceLocator.java
// public class ResourceLocator {
//     private ClassLoaderProvider classLoaderProvider = new ClassLoaderProvider();
// 
//     public InputStream locateInAssets(Context context, String name) throws IOException {
//         InputStream in = null;
// 
//         try {
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("Looking for " +
//                         name +
//                         " in asset path...");
//             }
// 
//             in = context.getAssets().open(name);
// 
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("Found " +
//                         name +
//                         " in asset path");
//             }
//         }
//         catch (IOException ignore) {
//             // Ignore this, just means no override.
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("No file found in assets with name [" +
//                         name +
//                         "].");
//             }
//         }
// 
//         return in;
//     }
// 
//     public InputStream locateInClassPath(String name) throws IOException {
// 
//         InputStream in = null;
// 
//         if(classLoaderProvider != null) {
// 
//             if(Logger.isDebugEnabled()) {
//                 Logger.d("Looking for " +
//                         name +
//                         " in classpath...");
//             }
// 
//             in = classLoaderProvider.getClassLoader().getResourceAsStream(name);
// 
//             if(in != null) {
//                 if(Logger.isDebugEnabled()) {
//                     Logger.d("Found " +
//                             name +
//                             " in classpath");
//                 }
//             }
//         }
// 
//         return in;
//     }
// 
//     public InputStream locate(Context context, String name) throws IOException {
// 
//         InputStream in = locateInAssets(context, name);
// 
//         if(in == null) {
//             in = locateInClassPath(name);
//         }
// 
//         if(in == null) {
//             Logger.w("Could not locate [" +
//                     name +
//                     "] in any location");
//         }
// 
//         return in;
//     }
// 
//     public ClassLoaderProvider getClassLoaderProvider() {
//         return classLoaderProvider;
//     }
// 
//     public void setClassLoaderProvider(ClassLoaderProvider classLoaderProvider) {
//         this.classLoaderProvider = classLoaderProvider;
//     }
// }


// Path: sdk/src/com/sharethis/loopy/sdk/Config.java
import android.content.Context;
import com.sharethis.loopy.sdk.net.HttpClientFactory;
import com.sharethis.loopy.sdk.util.ResourceLocator;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;


    public String getSecureAPIUrl() {
        return secureApiUrl;
    }

    public int getApiTimeout() {
        return apiTimeout;
    }

    public boolean isDebug() {
        return debug;
    }

    public int getSessionTimeoutSeconds() {
        return sessionTimeoutSeconds;
    }

    String clean(String url) {
        url = url.trim();
        if(!url.endsWith("/")) {
            return url += "/";
        }
        return url;
    }

    // mockable
    Properties newProperties() {
        return new Properties();
    }

    ResourceLocator newResourceLocator() {