/* * FrontlineSMS <http://www.frontlinesms.com> * Copyright 2007, 2008 kiwanja * * This file is part of FrontlineSMS. * * FrontlineSMS is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or (at * your option) any later version. * * FrontlineSMS is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser * General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with FrontlineSMS. If not, see <http://www.gnu.org/licenses/>. */ package net.frontlinesms; import net.frontlinesms.data.domain.Contact; import net.frontlinesms.ui.i18n.TextResourceKeyOwner; // FIXME many of these constants are UI-specific @TextResourceKeyOwner(prefix={"ACTION_", "COMMON_", "CONTACTS", "DATEFORMAT_", "I18N_", "MENUITEM_", "MESSAGE_", "SENTENCE_", "SMS_DEVICE_STATUS_", "SMS_MODEM_STATUS_", "TOOLTIP_", // Those following are individual keys, rather than actual prefixes "MONTH_KEYS", "UNKNOWN_NAME", "UNKNOWN_NOTES"}) public final class FrontlineSMSConstants { /** String for displaying the version of the application. This has 1 substitution variable. */ public static final String I18N_APP_VERSION = "application.version"; /** Email address to send error reports to */ public static final String FRONTLINE_SUPPORT_EMAIL = "frontlinesupport@kiwanja.net"; /** SMTP server to submit {@link #FRONTLINE_STATS_EMAIL} to. */ public static final String FRONTLINE_SUPPORT_EMAIL_SERVER = "mail.kiwanja.net"; /** Email address to send usage statistics to */ public static final String FRONTLINE_STATS_EMAIL = "stats@frontlinesms.com"; /** URL of the FrontlineSMS Community website */ public static final String URL_FRONTLINESMS_COMMUNITY = "http://community.frontlinesms.com"; /** Phone number to submit usage statistics to over SMS. * N.B. This should be an INTERNATIONAL number (i.e. +XXYYYY) */ public static final String FRONTLINE_STATS_PHONE_NUMBER = "+447716355738"; /** Number of days to wait before prompting to submit statistics after the previous time */ public static final int STATISTICS_DAYS_BEFORE_RELAUNCH = 28; public static final String ZIPPED_LOGS_FILENAME = "logs.zip"; public static final String USE_DATABASE = "db"; public static final String UNKNOWN_NOTES = "sentence.contact.added.automatically"; public static final String DEFAULT_START_PAGE = "0"; public static final int DEFAULT_MMS_POLLING_FREQUENCY = 30000; public static final String TEST_NUMBER_NAME = "Test Number"; public static final String EMULATOR_MSISDN = "000"; public static final long DEFAULT_END_DATE = Long.MAX_VALUE; public static final int MOBILE_ID_LIMIT = 256; public static final String DEFAULT_DATABASE_NAME = "frontline_database"; public static final String PROPERTIES_SMS_INTERNET_ICONS = "sms.internet.icons"; public static final int RESULTS_PER_PAGE_DEFAULT = 100; public static final String ACTION_FORWARD = "action.create.forward.msg"; public static final String ACTION_ADD_TO_GROUP = "action.add.to.group"; public static final String ACTION_SAVE = "action.save"; public static final String ACTION_CANCEL = "action.cancel"; public static final String ACTION_CLOSE = "action.close"; //> CONTACTS i18n Keys /** [i18n key] "All contacts" */ public static final String CONTACTS_ALL = "contacts.all"; // COMMON i18n Keys TODO these need commenting public static final String COMMON_ALL = "common.all"; public static final String COMMON_ALL_MESSAGES = "common.all.messages"; public static final String COMMON_CONTACTS = "common.contacts"; public static final String COMMON_GROUP = "common.group"; public static final String COMMON_REPLY = "common.reply"; public static final String COMMON_EXTERNAL_COMMAND = "common.external.command"; public static final String COMMON_COMMAND = "common.command"; public static final String COMMON_LEAVE = "common.leave"; public static final String COMMON_JOIN = "common.join"; public static final String COMMON_DELIVERED = "common.type.delivered"; public static final String COMMON_RETRYING = "common.type.retrying"; public static final String COMMON_FAILED = "common.type.failed"; public static final String COMMON_SENT = "common.sent"; public static final String COMMON_PENDING = "common.type.pending"; public static final String COMMON_OUTBOX = "common.type.outbox"; public static final String COMMON_RECEIVED = "common.received"; public static final String COMMON_DORMANT = "common.dormant"; public static final String COMMON_DRAFT = "common.draft"; public static final String COMMON_ACTIVE = "common.active"; public static final String COMMON_TO_GROUP = "common.to.group"; public static final String COMMON_AUTO_FORWARD_FOR_KEYWORD = "common.auto.forward.for.keyword"; public static final String COMMON_AUTO_LEAVE_GROUP = "common.auto.leave.group"; public static final String COMMON_AUTO_JOIN_GROUP = "common.auto.join.group"; public static final String COMMON_KEYWORD = "common.keyword"; public static final String COMMON_KEYWORDS = "common.keywords"; public static final String COMMON_MESSAGE = "common.message"; public static final String COMMON_URL = "common.url"; public static final String COMMON_RECIPIENT = "common.recipient"; public static final String COMMON_SENDER = "common.sender"; public static final String COMMON_DATE = "common.date"; public static final String COMMON_STATUS = "common.status"; public static final String COMMON_KEYWORD_DESCRIPTION = "common.keyword.description"; public static final String COMMON_AT_LEAST_ONE_GROUP = "common.at.least.one.group"; public static final String COMMON_NOTES = "common.notes"; public static final String COMMON_CURRENT_STATUS = "common.current.status"; public static final String COMMON_E_MAIL_ADDRESS = "common.email.address"; public static final String COMMON_E_MAIL = "common.email"; public static final String COMMON_OTHER_PHONE_NUMBER = "common.other.phone.number"; public static final String COMMON_PHONE_NUMBER = "common.phone.number"; public static final String COMMON_NAME = "common.name"; public static final String COMMON_CONTACT_NOTES = "common.contact.notes"; public static final String COMMON_CONTACT_E_MAIL_ADDRESS = "common.contact.email"; public static final String COMMON_CONTACT_OTHER_PHONE_NUMBER = "common.contact.other.phone.number"; public static final String COMMON_CONTACT_NAME = "common.contact.name"; public static final String COMMON_MESSAGE_RECIPIENT = "common.message.recipient"; public static final String COMMON_MESSAGE_SENDER = "common.message.sender"; public static final String COMMON_MESSAGE_STATUS = "common.message.status"; public static final String COMMON_MESSAGE_TYPE = "common.message.type"; public static final String COMMON_MESSAGE_CONTENT = "common.message.content"; public static final String COMMON_RECIPIENT_NAME = "common.message.recipient.name"; public static final String COMMON_RECIPIENT_NUMBER = "common.message.recipient.number"; public static final String COMMON_SENDER_NAME = "common.message.sender.name"; public static final String COMMON_SENDER_NUMBER = "common.message.sender.number"; public static final String COMMON_MESSAGE_DATE = "common.message.date"; public static final String COMMON_EDITING_KEYWORD = "common.editing.keyword"; public static final String COMMON_UNDEFINED = "common.undefined"; public static final String COMMON_HTTP_REQUEST = "common.http.request"; public static final String COMMON_SUBJECT = "common.subject"; public static final String COMMON_CONTENT = "common.content"; public static final String COMMON_CONTACTS_IN_GROUP = "common.contacts.in.group"; public static final String COMMON_KEYWORD_ACTIONS = "common.keyword.actions"; public static final String COMMON_KEYWORD_ACTIONS_OF = "common.keyword.actions.of"; public static final String COMMON_EDITING_SMS_SERVICE = "common.edting.sms.service"; public static final String COMMON_BLANK = "common.blank"; public static final String COMMON_DATABASE_CONNECTION_PROBLEM = "common.db.connection.problem"; public static final String COMMON_RECEIVED_MESSAGES = "common.received.messages"; public static final String COMMON_SENT_MESSAGES = "common.sent.messages"; public static final String COMMON_SMS_INTERNET_SERVICE_RECEIVING_FAILED = "common.sms.internet.service.receiving.failed"; public static final String EVENT_DESCRIPTION = "event.description"; public static final String EVENT_DESCRIPTION_MULTI_RECIPIENTS = "event.description.multi.recipients"; public static final String MESSAGE_BLANK_KEYWORD_DESCRIPTION = "message.blank.keyword"; public static final String MESSAGE_MMS_KEYWORD_DESCRIPTION = "message.mms.keyword.description"; public static final String MESSAGE_GROUP_NO_MEMBERS = "message.no.members"; public static final String MESSAGE_KEYWORD_EXISTS = "message.keyword.already.exists"; public static final String MESSAGE_KEYWORD_SAVED = "message.keyword.saved"; public static final String MESSAGE_MESSAGE_OR_CMD_BLANK = "message.message.or.cmd.blank"; public static final String MESSAGE_KEYWORD_BLANK = "message.keyword.blank"; public static final String MESSAGE_CONTACT_IS_ALREADY_LISTED = "message.contact.is.already.listed"; public static final String MESSAGE_GROUP_IS_ALREADY_LISTED = "message.group.is.already.listed"; public static final String MESSAGE_FAILED_TO_CONNECT = "message.failed.to.connect"; public static final String MESSAGE_CONTINUING_TO_SEARCH_FOR_HIGHER_SPEED = "message.continuing.to.search.for.higher.speed"; public static final String MESSAGE_READY_TO_CONNECT = "message.ready.to.connect"; public static final String MESSAGE_ONLY_DORMANTS = "message.only.dormants"; public static final String MESSAGE_WRONG_FORMAT_DATE = "message.wrong.format.date"; public static final String MESSAGE_START_DATE_AFTER_END = "message.start.date.after.end"; public static final String MESSAGE_CLICKATELL_ACCOUNT_BLANK = "message.clickatell.account.blank"; public static final String MESSAGE_LOG_FILES_SENT = "message.log.files.sent"; public static final String MESSAGE_FAILED_TO_SEND_REPORT = "message.failed.to.send.report"; public static final String MESSAGE_FAILED_TO_COPY_LOGS = "message.failed.to.copy.logs"; public static final String MESSAGE_LOGS_LOCATED_IN = "message.logs.location"; public static final String MESSAGE_LOGS_SAVED_PLEASE_REPORT = "message.logs.saved.please.report"; public static final String SENTENCE_SELECT_MESSAGE_RECIPIENT_TITLE = "sentence.select.message.recipient"; public static final String TOOLTIP_UNNAMED_GROUP = "tooltip.group.unnamed"; public static final String TOOLTIP_UNGROUPED_GROUP = "tooltip.group.ungrouped"; /** Keys for fetching month names from the language bundle. */ public static final String[] MONTH_KEYS = { "month.jan", "month.feb", "month.mar", "month.apr", "month.may", "month.jun", "month.jul", "month.aug", "month.sep", "month.oct", "month.nov", "month.dec" }; //> MMS DEVICE STATUS KEYS public static final String MMS_SERVICE_STATUS_DISABLED = "mms.email.disabled"; public static final String MMS_SERVICE_STATUS_FETCHING = "mms.email.fetching"; public static final String MMS_SERVICE_STATUS_READY = "mms.email.ready"; //> SMS DEVICE STATUS KEYS /** Key for text: SMS Device Status: dormant */ public static final String SMS_DEVICE_STATUS_DORMANT = COMMON_DORMANT; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_SEARCHING = "message.searching.for.devices"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_DETECTED = "message.phone.detected"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_CONNECTED = "common.connected"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_DISCONNECT = "common.disconnect"; /** Key for text: SMS Device Status: Disconnect forced - the device was forced to disconnect for some reason and cannot reconnect. */ public static final String SMS_DEVICE_STATUS_DISCONNECT_FORCED = "common.disconnect.forced"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_DUPLICATE = "message.duplicate.connection"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_MAX_SPEED = "message.max.speed.found"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_TRYING_TO_CONNECT = "message.trying.to.connect"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_NO_PHONE_DETECTED = "message.no.phone.detected"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_CONNECTING = "common.connecting"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_FAILED_TO_CONNECT = "common.failed.connect"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_LOW_CREDIT = "common.low.credit"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_DISCONNECTING = "common.disconnecting"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_RECEIVING_FAILED = "common.receiving.failed"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_DEVICE_STATUS_TRYING_RECONNECT = "common.trying.to.reconnect"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_MODEM_STATUS_GSM_REG_FAILED = "message.gsm.registration.failed"; /** Key for text: SMS Device Status: TODO */ public static final String SMS_MODEM_STATUS_ALREADY_OWNED = "message.owner.is"; /** String in messages which is substituted for a value */ public static final String ARG_VALUE = "%"; public static final String PROPERTY_FIELD = "field"; public static final String MESSAGE_MODEM_LIST_UPDATED = "message.modem.list.loaded"; public static final String MESSAGE_MESSAGES_LOADED = "message.messages.loaded"; public static final String MESSAGE_KEYWORDS_LOADED = "message.keywords.loaded"; public static final String MESSAGE_EMAILS_LOADED = "message.emails.loaded"; public static final String MESSAGE_SEND_CONSOLE_LOADED = "message.send.console.loaded"; public static final String MESSAGE_CONTACT_MANAGER_LOADED = "message.contact.manager.loaded"; public static final String MESSAGE_NO_FILE_SELECTED = "message.no.file.selected"; public static final String MESSAGE_DIRECTORY_NOT_FOUND = "message.directory.not.found"; public static final String MESSAGE_NO_GROUP_SELECTED_TO_FWD = "message.no.group.selected"; public static final String MESSAGE_NO_CONTACT_SELECTED = "message.no.contact.selected"; public static final String MESSAGE_NO_GROUP_CREATED_BY_USERS = "message.no.group.created.by.users"; public static final String MESSAGE_KEYWORD_ACTIONS_DELETED = "message.keyword.actions.deleted"; public static final String MESSAGE_TASKS_DELETED = "message.tasks.deleted"; public static final String MESSAGE_REMOVING_KEYWORD_ACTIONS = "message.removing.keyword.actions"; public static final String MESSAGE_REMOVING_TASKS = "message.removing.tasks"; public static final String MESSAGE_MESSAGE_RECEIVED = "message.message.received"; public static final String MESSAGE_CONTACTS_DELETED = "message.contacts.deleted"; public static final String MESSAGE_REMOVING_CONTACTS = "message.removing.contacts"; public static final String MESSAGE_GROUP_ALREADY_EXISTS = "message.group.already.exists"; public static final String MESSAGE_MESSAGES_DELETED = "message.messages.deleted"; public static final String MESSAGE_REMOVING_MESSAGES = "message.removing.messages"; public static final String MESSAGE_GROUPS_DELETED = "message.groups.deleted"; public static final String MESSAGE_GROUPS_AND_CONTACTS_DELETED = "message.group.and.contacts.deleted"; public static final String MESSAGE_PHONE_BLANK = "message.phone.number.blank"; public static final String MESSAGE_NO_GROUP_SELECTED = "message.no.group.selected.to.send"; public static final String MESSAGE_BLANK_PHONE_NUMBER = "message.no.phone.number.to.send"; public static final String MESSAGE_BLANK_TEXT = "message.message.blank"; public static final String MESSAGE_PHONE_MANAGER_INITIALISED = "message.phone.manager.initialised"; public static final String MESSAGE_INITIALISING_PHONE_MANAGER = "message.starting.phone.manager"; public static final String MESSAGE_STARTING = "message.starting"; public static final String DEFAULT_GROUPS_DELIMITER = ", "; public static final String DEMO_SENDER_NAME = "<senderName>"; public static final String DEMO_SENDER_MSISDN = "<senderPhoneNumber>"; public static final String DEMO_MESSAGE_TEXT_INCOMING = "<incomingMessageText>"; public static final String DEMO_MESSAGE_KEYWORD = "<incomingKeyword>"; // TODO this may cause problems as it is never saved in a DAO... this remains to be seen... public static final Contact DEMO_SENDER = new Contact(DEMO_SENDER_NAME, DEMO_SENDER_MSISDN, null, null, null, true); public static final String DEFAULT_EXPORT_DATE_FORMAT = "date.export.format"; public static final String DEFAULT_TIME = "00:00"; public static final long MILLIS_PER_DAY = 24*60*60*1000; /** maximum length of the description field for a keyword */ public static final int KEYWORD_MAX_DESCRIPTION_LENGTH = 255; /** Maximum length of an external command **/ public static final int EXTERNAL_COMMAND_MAX_LENGTH = 1024; //> DATE FORMATS /** [i18n key to Date format] years, months and days. * This should specify a 4 digit year as it will be used for parsing entered dates as well as displaying used ones. */ public static final String DATEFORMAT_YMD = "date.keyword.action.format"; /** [i18n key to Date format] This date format is for displaying the date and time of an event, message etc. It is not used for parsing input. */ public static final String DATEFORMAT_YMD_HMS = "date.message.format"; public static final String MMS_KEYWORD = "<MMS>"; }