package de.fun2code.android.piratebox; import android.content.Context; import android.content.SharedPreferences; import android.os.Environment; import android.preference.PreferenceManager; /** * Constants that are used throughout the app * * @author joschi * */ public class Constants { private static String INSTALL_DIR; public static final String TAG = "PirateBox"; public static final String PREF_START_ON_BOOT = "startOnBoot"; public static final String PREF_SSID_NAME = "ssidName"; public static final String PREF_AP_IP = "apIp"; public static final String PREF_DOMAIN_NAME = "domainName"; public static final String PREF_STORAGE_DIR = "storageDir"; public static final String PREF_WEB_I18N = "webI18n"; public static final String PREF_IOS_WISPR_SUPPORT = "iosWispr"; public static final String PREF_WP_NCSI_SUPPORT = "wpNcsi"; public static final String PREF_VERSION = "version"; public static final String PREF_UPDATE = "update"; public static final String PREF_AUTO_AP_STARTUP = "autoApStartup"; public static final String PREF_DEV_CONTENT_SD = "devContentSd"; public static final String PREF_DEV_INFO_PIRATEBOX_VERSION = "infoPirateBoxVersion"; public static final String PREF_DEV_INFO_PAW_VERSION = "infoPawVersion"; public static final String PREF_DEV_INFO_AP_IP_ADDRESS = "infoApIpAddress"; public static final String PREF_DEV_INFO_IP_ADDRESS = "infoIpAddress"; public static final String PREF_DEV_INFO_LOCAL_PORT = "infoLocalPort"; public static final String PREF_DEV_INFO_UPLOADS = "infoUploads"; public static final String PREF_DEV_INFO_MESSAGES = "infoMessages"; public static final String PREF_DEV_INFO_CONNECTIONS = "infoConnections"; public static final String PREF_DEV_INFO_MAX_UPLOAD_SIZE = "infoMaxUploadSize"; public static final String PREF_DEV_RESTORE_DNSMASQ = "restoreDnsMasq"; public static final String PREF_DEV_RESET_NETWORKING = "resetNetworking"; public static final String PREF_EMULATE_DROOPY = "emulateDroopy"; public static final String PREF_KEEP_DEVICE_ON = "keepDeviceOn"; public static final String PREF_ENABLE_STATISTICS = "enableStatistics"; public static final String PREF_CLEAR_STATISTICS = "clearStatistics"; public static final String PREF_WEAR_NOTIFICATIONS = "wearNotifications"; public static final String PREF_USE_EXTERNAL_SERVER = "useExternalServer"; public static final String PREF_EXTERNAL_SERVER_PORT = "externalServerPort"; public static final String PREF_CONFIGURE_AP = "configureAp"; public static final String AP_IP_DEFAULT = "192.168.43.1"; // Default AP IP address public static final String NAT_TABLE_NAME = "nat"; public static final int DEFAULT_MAX_POST = 209715200; // Default upload size // Database constants public static final String STATS_DATABASE_NAME = "statistics"; public static final int STATS_DATABASE_VERSION = 1; public static final String STATS_TABLE_VISITORS = "vc_statistics"; public static final String STATS_TABLE_DOWNLOADS = "dl_statistics"; //public static final String DEV_SWITCH_FILE = Environment.getExternalStorageDirectory().getPath() + "/.piratebox_dev"; public static final String BROADCAST_INTENT_SERVER = "de.fun2code.android.piratebox.broadcast.intent.SERVER"; public static final String INTENT_SERVER_EXTRA_STATE = "SERVER_STATE"; public static final String BROADCAST_INTENT_AP = "de.fun2code.android.piratebox.broadcast.intent.AP"; public static final String INTENT_AP_EXTRA_STATE = "AP_STATE"; public static final String BROADCAST_INTENT_NETWORK = "de.fun2code.android.piratebox.broadcast.intent.NETWORK"; public static final String INTENT_NETWORK_EXTRA_STATE = "NETWORK_STATE"; public static final String BROADCAST_INTENT_SHOUT = "de.fun2code.android.piratebox.broadcast.intent.SHOUT"; public static final String INTENT_SHOUT_EXTRA_NAME = "SHOUT_NAME"; public static final String INTENT_SHOUT_EXTRA_TEXT = "SHOUT_TEXT"; public static final String INTENT_SHOUT_EXTRA_NUMBER = "SHOUT_NUMBER"; public static final String INTENT_SHOUT_EXTRA_DIR = "SHOUT_DIR"; public static final String BROADCAST_INTENT_UPLOAD = "de.fun2code.android.piratebox.broadcast.intent.UPLOAD"; public static final String INTENT_UPLOAD_EXTRA_FILE = "UPLOAD_FILE"; public static final String INTENT_UPLOAD_EXTRA_NUMBER = "UPLOAD_NUMBER"; public static final String INTENT_UPLOAD_EXTRA_DIR = "UPLOAD_DIR"; public static final String BROADCAST_INTENT_CONNECTION = "de.fun2code.android.piratebox.broadcast.intent.CONNECTION"; public static final String INTENT_CONNECTION_EXTRA_NUMBER = "CONNECTION_NUMBER"; public static final String BROADCAST_INTENT_STATUS_REQUEST = "de.fun2code.android.piratebox.broadcast.intent.STATUS_REQUEST"; public static final String BROADCAST_INTENT_STATUS_RESULT = "de.fun2code.android.piratebox.broadcast.intent.STATUS_RESULT"; public static final int SERVER_FLAG_EXTERNAL = 1; /** * Returns the directory PirateBox will be installed to * * @param context {@code Context} to use * @return PirateBox installation directory */ public static String getInstallDir(Context context) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); if(INSTALL_DIR == null) { //if(new File(DEV_SWITCH_FILE).exists()) { if(preferences.getBoolean(PREF_DEV_CONTENT_SD, false)) { // Use external storage INSTALL_DIR = Environment.getExternalStorageDirectory().getPath() + "/piratebox"; } else { // Use /data/data/... directory INSTALL_DIR = context.getFilesDir().getAbsolutePath() + "/piratebox"; } } return INSTALL_DIR; } /** * Resets the installation directory */ public static void resetInstallDir() { INSTALL_DIR = null; } }