// Path: AndroidApp/SparkPixels/src/org/solemnsilence/util/Py.java
// public static boolean truthy(Object obj) {
// 	if (obj == null) {
// 		return false;
// 
// 	} else if (obj instanceof Truthiable) {
// 		return ((Truthiable) obj).isTruthy();
// 
// 	} else if (obj instanceof Collection) {
// 		return (!((Collection<?>) obj).isEmpty());
// 
// 	} else if (obj instanceof Iterable) {
// 		return (((Iterable<?>) obj).iterator().hasNext());
// 
// 	} else if (obj instanceof Object[]) {
// 		return (((Object[]) obj).length > 0);
// 
// 	} else if (obj instanceof Number) {
// 		return (((Number) obj).longValue() != 0);
// 
// 	} else if (obj instanceof CharSequence) {
// 		return (((CharSequence) obj).length() > 0);
// 
// 	} else if (obj instanceof JSONArray) {
// 		return (((JSONArray) obj).length() > 0);
// 
// 	} else if (obj instanceof Boolean) {
// 		return (((Boolean) obj).booleanValue());
// 
// 	} else if (obj instanceof long[]) {
// 		return (((long[]) obj).length > 0);
// 
// 	} else if (obj instanceof int[]) {
// 		return (((int[]) obj).length > 0);
// 
// 	} else if (obj instanceof short[]) {
// 		return (((short[]) obj).length > 0);
// 
// 	} else if (obj instanceof byte[]) {
// 		return (((byte[]) obj).length > 0);
// 
// 	} else if (obj instanceof char[]) {
// 		return (((char[]) obj).length > 0);
// 
// 	} else if (obj instanceof boolean[]) {
// 		return (((boolean[]) obj).length > 0);
// 
// 	} else if (obj instanceof float[]) {
// 		return (((float[]) obj).length > 0);
// 
// 	} else if (obj instanceof double[]) {
// 		return (((double[]) obj).length > 0);
// 	}
// 
// 	return true;
// }
// 
// Path: AndroidApp/SparkPixels/src/kc/spark/pixels/android/app/AppConfig.java
// public class AppConfig {
// 
// 	private static Context ctx;
// 
// 
// 	// Should be called when starting up the app, probably in
// 	// Application.onCreate()
// 	public static void initialize(Context context) {
// 		ctx = context.getApplicationContext();
// 	}
// 
// 	public static String getApiHostname() {
// 		int resId = useStaging() ? R.string.staging_hostname : R.string.prod_hostname;
// 		return ctx.getString(resId);
// 	}
// 
// 	public static String getApiUrlScheme() {
// 		return ctx.getString(R.string.api_url_scheme);
// 	}
// 
// 	public static int getApiHostPort() {
// 		return ctx.getResources().getInteger(R.integer.api_host_port);
// 	}
// 
// 	public static String getSparkTokenCreationCredentials() {
// 		return ctx.getString(R.string.spark_token_creation_credentials);
// 	}
// 
// 	public static boolean useStaging() {
// 		return ctx.getResources().getBoolean(R.bool.use_staging);
// 	}
// 
// 	public static String getApiVersion() {
// 		return ctx.getString(R.string.api_version);
// 	}
// 
// 	public static String getApiParamAccessToken() {
// 		return ctx.getString(R.string.api_param_access_token);
// 	}
// 
// 	public static String getSmartConfigHelloListenAddress() {
// 		return ctx.getString(R.string.smart_config_hello_listen_address);
// 	}
// 
// 	public static int getSmartConfigHelloListenPort() {
// 		return ctx.getResources().getInteger(R.integer.smart_config_hello_port);
// 	}
// 
// 	public static int getSmartConfigHelloMessageLength() {
// 		return ctx.getResources().getInteger(R.integer.smart_config_hello_msg_length);
// 	}
// 
// 	public static String getSmartConfigDefaultAesKey() {
// 		return ctx.getString(R.string.smart_config_default_aes_key);
// 	}
// 
// }


import static org.solemnsilence.util.Py.truthy;
import java.net.MalformedURLException;
import java.net.URL;
import kc.spark.pixels.android.app.AppConfig;
import org.solemnsilence.util.TLog;
import android.net.Uri;
package kc.spark.pixels.android.cloud;








public class ApiUrlHelper {

	// all Uris just end up getting built from this one anyhow, no need to keep
	// reconstructing them completely
	private static Uri baseUri;


	public static Uri.Builder buildUri(String authToken, String... pathSegments) {
// Path: AndroidApp/SparkPixels/src/org/solemnsilence/util/Py.java
// public static boolean truthy(Object obj) {
// 	if (obj == null) {
// 		return false;
// 
// 	} else if (obj instanceof Truthiable) {
// 		return ((Truthiable) obj).isTruthy();
// 
// 	} else if (obj instanceof Collection) {
// 		return (!((Collection<?>) obj).isEmpty());
// 
// 	} else if (obj instanceof Iterable) {
// 		return (((Iterable<?>) obj).iterator().hasNext());
// 
// 	} else if (obj instanceof Object[]) {
// 		return (((Object[]) obj).length > 0);
// 
// 	} else if (obj instanceof Number) {
// 		return (((Number) obj).longValue() != 0);
// 
// 	} else if (obj instanceof CharSequence) {
// 		return (((CharSequence) obj).length() > 0);
// 
// 	} else if (obj instanceof JSONArray) {
// 		return (((JSONArray) obj).length() > 0);
// 
// 	} else if (obj instanceof Boolean) {
// 		return (((Boolean) obj).booleanValue());
// 
// 	} else if (obj instanceof long[]) {
// 		return (((long[]) obj).length > 0);
// 
// 	} else if (obj instanceof int[]) {
// 		return (((int[]) obj).length > 0);
// 
// 	} else if (obj instanceof short[]) {
// 		return (((short[]) obj).length > 0);
// 
// 	} else if (obj instanceof byte[]) {
// 		return (((byte[]) obj).length > 0);
// 
// 	} else if (obj instanceof char[]) {
// 		return (((char[]) obj).length > 0);
// 
// 	} else if (obj instanceof boolean[]) {
// 		return (((boolean[]) obj).length > 0);
// 
// 	} else if (obj instanceof float[]) {
// 		return (((float[]) obj).length > 0);
// 
// 	} else if (obj instanceof double[]) {
// 		return (((double[]) obj).length > 0);
// 	}
// 
// 	return true;
// }
// 
// Path: AndroidApp/SparkPixels/src/kc/spark/pixels/android/app/AppConfig.java
// public class AppConfig {
// 
// 	private static Context ctx;
// 
// 
// 	// Should be called when starting up the app, probably in
// 	// Application.onCreate()
// 	public static void initialize(Context context) {
// 		ctx = context.getApplicationContext();
// 	}
// 
// 	public static String getApiHostname() {
// 		int resId = useStaging() ? R.string.staging_hostname : R.string.prod_hostname;
// 		return ctx.getString(resId);
// 	}
// 
// 	public static String getApiUrlScheme() {
// 		return ctx.getString(R.string.api_url_scheme);
// 	}
// 
// 	public static int getApiHostPort() {
// 		return ctx.getResources().getInteger(R.integer.api_host_port);
// 	}
// 
// 	public static String getSparkTokenCreationCredentials() {
// 		return ctx.getString(R.string.spark_token_creation_credentials);
// 	}
// 
// 	public static boolean useStaging() {
// 		return ctx.getResources().getBoolean(R.bool.use_staging);
// 	}
// 
// 	public static String getApiVersion() {
// 		return ctx.getString(R.string.api_version);
// 	}
// 
// 	public static String getApiParamAccessToken() {
// 		return ctx.getString(R.string.api_param_access_token);
// 	}
// 
// 	public static String getSmartConfigHelloListenAddress() {
// 		return ctx.getString(R.string.smart_config_hello_listen_address);
// 	}
// 
// 	public static int getSmartConfigHelloListenPort() {
// 		return ctx.getResources().getInteger(R.integer.smart_config_hello_port);
// 	}
// 
// 	public static int getSmartConfigHelloMessageLength() {
// 		return ctx.getResources().getInteger(R.integer.smart_config_hello_msg_length);
// 	}
// 
// 	public static String getSmartConfigDefaultAesKey() {
// 		return ctx.getString(R.string.smart_config_default_aes_key);
// 	}
// 
// }


// Path: AndroidApp/SparkPixels/src/kc/spark/pixels/android/cloud/ApiUrlHelper.java
import static org.solemnsilence.util.Py.truthy;
import java.net.MalformedURLException;
import java.net.URL;
import kc.spark.pixels.android.app.AppConfig;
import org.solemnsilence.util.TLog;
import android.net.Uri;

package kc.spark.pixels.android.cloud;








public class ApiUrlHelper {

	// all Uris just end up getting built from this one anyhow, no need to keep
	// reconstructing them completely
	private static Uri baseUri;


	public static Uri.Builder buildUri(String authToken, String... pathSegments) {
		Uri.Builder builder = getBaseUriBuilder().appendPath(AppConfig.getApiVersion());