📄 settings.java
字号:
pollingSettingsForm.updateValuesToForm();
sortForm.updateValuesToForm();
}
public void saveSettings(boolean init) {
if (DEBUG) System.out.println("DEBUG Settings.saveSettings(boolean " + init + ")");
// initialize variables
if (init) {
try {
appearanceSettingsForm.updateValuesFromForm();
mujMailSettingsForm.updateValuesFromForm();
smtpSettingsForm.updateValuesFromForm();
retrievingSettingsForm.updateValuesFromForm();
otherSettingsForm.updateValuesFromForm();
storingSettingsForm.updateValuesFromForm();
pollingSettingsForm.updateValuesFromForm();
} catch (Exception ex) { //bad input may occur, empty port fields..
ex.printStackTrace();
updateValuesToForms(); //set defaults
mujMail.alert.setAlert(this,mujMail.getMenu(), Lang.get(Lang.ALRT_ST_SAVING) + Lang.get(Lang.FAILED), MyAlert.DEFAULT, AlertType.ERROR);
//return;
}
}
System.out.println("deleteMailsWhenHeaderDBIsFull: " + deleteMailsWhenHeaderDBIsFull);
// save to RecordStore
RecordStore rs;
try {
rs = RecordStore.openRecordStore("SETTINGS", true);
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
DataOutputStream stream = new DataOutputStream(buffer);
stream.writeLong(SETTINGSVERSION);
stream.writeUTF(mujMailSrvAddr);
stream.writeUTF(mujMailSrvPort);
stream.writeUTF(mujMailSrvLogin);
stream.writeUTF(mujMailSrvPasswd);
stream.writeUTF(primaryEmail);
stream.writeUTF(smtpServer);
stream.writeBoolean(smtpSSL);
//#ifdef MUJMAIL_SSL
stream.writeByte(smtpSSLType);
//#endif
stream.writeShort(smtpPort);
stream.writeUTF(smtpAuthName);
stream.writeUTF(smtpAuthPass);
stream.writeInt(fontSize);
stream.writeBoolean(downWholeMail);
stream.writeBoolean(downOnlyNeverSeen);
stream.writeBoolean(delMailFromServer);
stream.writeBoolean(delOnExit);
stream.writeBoolean(addToAddressbook);
stream.writeBoolean(smallFontMailForm);
stream.writeBoolean(replaceTabs);
stream.writeBoolean(moveToTrash);
stream.writeBoolean(safeMode);
stream.writeBoolean(deleteMailsWhenHeaderDBIsFull);
stream.writeBoolean(deleteMailsBodyWhenBodyDBIsFull);
//stream.writeShort(minInBoxDBSpace);
stream.writeShort(maxMailsRetrieve);
stream.writeShort(maxLinesRetrieve);
stream.writeLong(maxSizeOfBodypart);
stream.writeBoolean(pollPlaysSound);
stream.writeBoolean(pollDownloadsMails);
stream.writeInt(pollInvl);
stream.writeInt(timeout);
stream.writeInt(theBoxSortModes);
stream.writeUTF(signature);
stream.writeUTF(password);
// save the threading settings
stream.writeBoolean( threading );
stream.flush();
if (rs.getNumRecords() == 1) {
rs.setRecord(1, buffer.toByteArray(), 0, buffer.size());
} else {
rs.addRecord(buffer.toByteArray(), 0, buffer.size());
}
rs.closeRecordStore();
if (mujMail.getDisplay().getCurrent() != mujMail.mailForm) {
mujMail.mainMenu();
}
} catch (Exception e) {
e.printStackTrace();
mujMail.alert.setAlert(this,mujMail.getMenu(), Lang.get(Lang.ALRT_ST_SAVING) + Lang.get(Lang.FAILED), MyAlert.DEFAULT, AlertType.ERROR);
return;
}
}
/**
* This is called only at the beginning in the mujMail.startApp() method.
*/
public void loadSettings() {
if (DEBUG) System.out.println("DEBUG Setting.loadSettings()");
// load from the RecordStore
RecordStore rs;
try {
rs = RecordStore.openRecordStore("SETTINGS", true);
// settings has already been saved
if (rs.getNumRecords() == 1) {
if (DEBUG) System.out.println("DEBUG Settings.loadSettings() - loading settings");
ByteArrayInputStream buffer = new ByteArrayInputStream(rs.getRecord(1));
DataInputStream stream = new DataInputStream(buffer);
long sv = stream.readLong();
if (sv != this.SETTINGSVERSION) { //previous settings format is different
rs.closeRecordStore();
updateValuesToForms();
saveSettings(true); //create new format;
return; //otherwise it may cause a crash if we read different format
}
mujMailSrvAddr = stream.readUTF();
mujMailSrvPort = stream.readUTF();
mujMailSrvLogin = stream.readUTF();
mujMailSrvPasswd = stream.readUTF();
primaryEmail = stream.readUTF();
smtpServer = stream.readUTF();
smtpSSL = stream.readBoolean();
//#ifdef MUJMAIL_SSL
smtpSSLType = stream.readByte();
//#endif
smtpPort = stream.readShort();
smtpAuthName = stream.readUTF();
smtpAuthPass = stream.readUTF();
fontSize = stream.readInt();
downWholeMail = stream.readBoolean();
downOnlyNeverSeen = stream.readBoolean();
delMailFromServer = stream.readBoolean();
delOnExit = stream.readBoolean();
addToAddressbook = stream.readBoolean();
smallFontMailForm = stream.readBoolean();
replaceTabs = stream.readBoolean();
moveToTrash = stream.readBoolean();
safeMode = stream.readBoolean();
deleteMailsWhenHeaderDBIsFull = stream.readBoolean();
deleteMailsBodyWhenBodyDBIsFull = stream.readBoolean();
//minInBoxDBSpace = stream.readShort();
maxMailsRetrieve = stream.readShort();
maxLinesRetrieve = stream.readShort();
maxSizeOfBodypart = stream.readLong();
pollPlaysSound = stream.readBoolean();
pollDownloadsMails = stream.readBoolean();
pollInvl = stream.readInt();
timeout = stream.readInt();
theBoxSortModes = stream.readInt();
signature = stream.readUTF();
password = stream.readUTF();
threading = stream.readBoolean();
rs.closeRecordStore();
if (DEBUG) System.out.println("DEBUG Settings.loadSettings() - loading settings..successful");
}
} catch (Exception e) {
e.printStackTrace();
mujMail.alert.setAlert(this,mujMail.getMenu(), Lang.get(Lang.ALRT_ST_LOADING) + Lang.get(Lang.FAILED), MyAlert.DEFAULT, AlertType.ERROR);
}
updateValuesToForms();
}
public void itemStateChanged(Item item) {
if (item == smtpSSLCG) {
int smtpPortOld = 0;
try {
smtpPortOld = Short.parseShort(smtpPortTF.getString());
} catch (Exception e) {}
if (smtpSSLCG.isSelected(0)) {
//#ifdef MUJMAIL_SSL
sslTypeChooser.insertToForm();
//#endif
if ( smtpPortOld == CONST_PORT_SMTP ) smtpPortTF.setString( new Integer(CONST_PORT_SMTPS).toString());
} else {
//#ifdef MUJMAIL_SSL
sslTypeChooser.deleteFromForm();
//#endif
if ( smtpPortOld == CONST_PORT_SMTPS ) smtpPortTF.setString( new Integer(CONST_PORT_SMTP).toString());
}
}
}
private static SMTPSettingsForm smtpSettingsForm;
public void showSMTPSettingsForm() {
mujMail.getDisplay().setCurrent(smtpSettingsForm);
}
private static AppearanceSettingsForm appearanceSettingsForm;
public void showAppearanceSettingsForm() {
mujMail.getDisplay().setCurrent(appearanceSettingsForm);
}
private static RetrievingSettingsForm retrievingSettingsForm;
public void showRetrievingSettingsForm() {
mujMail.getDisplay().setCurrent(retrievingSettingsForm);
}
private static MujMailServerSettingsForm mujMailSettingsForm;
public void showMujMailServerSettingsForm() {
mujMail.getDisplay().setCurrent(mujMailSettingsForm);
}
private static StoringSettingsForm storingSettingsForm;
public void showStoringMailsSettingsForm() {
mujMail.getDisplay().setCurrent(storingSettingsForm);
}
private static PollingSettingsForm pollingSettingsForm;
public void showPollingSettingsForm() {
mujMail.getDisplay().setCurrent(pollingSettingsForm);
}
private static OtherSettingsForm otherSettingsForm;
public void showOtherSettingsForm() {
mujMail.getDisplay().setCurrent(otherSettingsForm);
}
/**
* Represents the form that displays settins variables.
*/
private abstract class SettingsForm extends Form {
public SettingsForm(String title) {
super(title);
addCommand(back);
addCommand(ok);
setCommandListener(mujMail);
setItemStateListener(Settings.this);
}
/**
* Displays values of settings variables in the form.
*/
protected abstract void updateValuesToForm();
/**
* Update values of settings variable according to values in form.
*/
protected abstract void updateValuesFromForm() throws Exception;
}
private class SMTPSettingsForm extends SettingsForm {
public SMTPSettingsForm() {
super("Sending mails settings");
smtpSSLCG = new ChoiceGroup("SMTP SSL", Choice.MULTIPLE);
smtpSSLCG.append(Lang.get(Lang.AS_SSL), null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -