📄 settings.java
字号:
}
//#endif
//#ifdef MUJMAIL_SYNC
public void parseAndSetup(String setupStr)
{
//skip SETTINGSVERSION for now
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
mujMailSrvAddr = setupStr.substring(setupStr.indexOf("mujMailSrvAddr: ") + 16, setupStr.indexOf('\n'));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
mujMailSrvPort = setupStr.substring(setupStr.indexOf("mujMailSrvPort: ") + 16, setupStr.indexOf('\n'));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
mujMailSrvLogin = setupStr.substring(setupStr.indexOf("mujMailSrvLogin: ") + 17, setupStr.indexOf('\n'));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
primaryEmail = setupStr.substring(setupStr.indexOf("primaryEmail: ") + 14, setupStr.indexOf('\n'));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
smtpServer = setupStr.substring(setupStr.indexOf("smtpServer: ") + 12, setupStr.indexOf('\n'));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
smtpSSL = "1".equals(setupStr.substring(setupStr.indexOf("smtpSSL: ") + 9, setupStr.indexOf('\n')));
//#ifdef MUJMAIL_SSL
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
smtpSSLType = Integer.valueOf(setupStr.substring(setupStr.indexOf("smtpSSLType: ") + 13, setupStr.indexOf('\n'))).byteValue();
//#endif
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
smtpPort = Integer.valueOf(setupStr.substring(setupStr.indexOf("smtpPort: ") + 10, setupStr.indexOf('\n'))).shortValue();
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
smtpAuthName = setupStr.substring(setupStr.indexOf("smtpAuthName: ") + 14, setupStr.indexOf('\n'));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
fontSize = Integer.parseInt(setupStr.substring(setupStr.indexOf("fontSize: ") + 10, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
downWholeMail = "1".equals(setupStr.substring(setupStr.indexOf("downWholeMail: ") + 15, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
downOnlyNeverSeen = "1".equals(setupStr.substring(setupStr.indexOf("downOnlyNeverSeen: ") + 19, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
delMailFromServer = "1".equals(setupStr.substring(setupStr.indexOf("delMailFromServer: ") + 19, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
delOnExit = "1".equals(setupStr.substring(setupStr.indexOf("delOnExit: ") + 11, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
addToAddressbook = "1".equals(setupStr.substring(setupStr.indexOf("addToAddressbook: ") + 18, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
smallFontMailForm = "1".equals(setupStr.substring(setupStr.indexOf("smallFontMailForm: ") + 19, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
replaceTabs = "1".equals(setupStr.substring(setupStr.indexOf("replaceTabs: ") + 13, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
moveToTrash = "1".equals(setupStr.substring(setupStr.indexOf("moveToTrash: ") + 13, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
safeMode = "1".equals(setupStr.substring(setupStr.indexOf("safeMode: ") + 10, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
deleteMailsWhenHeaderDBIsFull = "1".equals(setupStr.substring(setupStr.indexOf("deleteMailsWhenHeaderDBIsFull: ") + 31, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
deleteMailsBodyWhenBodyDBIsFull = "1".equals(setupStr.substring(setupStr.indexOf("deleteMailsBodyWhenBodyDBIsFull: ") + 33, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
//minInBoxDBSpace = Integer.valueOf(setupStr.substring(setupStr.indexOf("minInBoxDBSpace: ") + 17, setupStr.indexOf('\n'))).shortValue();
//setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
maxMailsRetrieve = Integer.valueOf(setupStr.substring(setupStr.indexOf("maxMailsRetrieve: ") + 18, setupStr.indexOf('\n'))).shortValue();
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
maxLinesRetrieve = Integer.valueOf(setupStr.substring(setupStr.indexOf("maxLinesRetrieve: ") + 18, setupStr.indexOf('\n'))).shortValue();
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
maxSizeOfBodypart = Long.parseLong(setupStr.substring(setupStr.indexOf("maxSizeOfBodypart: ") + 19, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
pollPlaysSound = "1".equals(setupStr.substring(setupStr.indexOf("pollPlaysSound: ") + 16, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
pollDownloadsMails = "1".equals(setupStr.substring(setupStr.indexOf("pollDownloadsMails: ") + 20, setupStr.indexOf('\n')));
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
pollInvl = Integer.valueOf(setupStr.substring(setupStr.indexOf("pollInvl: ") + 10, setupStr.indexOf('\n'))).intValue();
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
timeout = Integer.valueOf(setupStr.substring(setupStr.indexOf("timeout: ") + 9, setupStr.indexOf('\n'))).intValue();
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
theBoxSortModes = Integer.valueOf(setupStr.substring(setupStr.indexOf("theBoxSortModes: ") + 17, setupStr.indexOf('\n'))).intValue();
setupStr = setupStr.substring(setupStr.indexOf('\n') + 1);
signature = setupStr.substring(setupStr.indexOf("signature: ") + 11, setupStr.indexOf('\n'));
if (DEBUG) System.out.println("DEBUG Settings.parseAndSetup(String) - SETTINGS="+toString());
saveSettings(false);
mujMail.getMenu().refresh(Menu.SETTINGS, false);
loadSettings();
}
//#endif
class SortForm extends Form implements ItemStateListener {
/** Index for the "threading enabled" option */
private static final byte THREADING_ENABLED_CHACKBOX = 0;
ChoiceGroup sortByCG;
ChoiceGroup sortOrderCG;
TheBox box;
ChoiceGroup threadingGroup;
public SortForm() {
super(Lang.get(Lang.ST_SORT_SETTINGS));
sortByCG = new ChoiceGroup(Lang.get(Lang.ST_SORT_BY), Choice.EXCLUSIVE);
sortByCG.append(Lang.get(Lang.ST_SORT_TIME), null);
sortByCG.append(Lang.get(Lang.ST_SORT_SUBJECT), null);
sortByCG.append(Lang.get(Lang.ST_SORT_RECIPIENTS), null);
sortByCG.append(Lang.get(Lang.ST_SORT_SENDER), null);
sortByCG.append(Lang.get(Lang.ST_SORT_SIZE), null);
sortOrderCG = new ChoiceGroup(Lang.get(Lang.ST_SORT_ORDER), Choice.EXCLUSIVE);
sortOrderCG.append("older first", null); // have to represent unnatural ordering
sortOrderCG.append("newer first", null); // have to represent natural ordering
threadingGroup = new ChoiceGroup( Lang.get( Lang.ST_THREADING), Choice.MULTIPLE );
// this is why the value of THREADING_ENABLED_CHACKBOX is 0
threadingGroup.append( Lang.get( Lang.ST_THREADING_ENABLE), null );
threadingGroup.setSelectedFlags( new boolean[] { Settings.threading } );
append(sortByCG);
append(sortOrderCG);
append( threadingGroup );
addCommand(back);
addCommand(ok);
setCommandListener(mujMail);
setItemStateListener( this );
}
public void setOrderingLabels( int selectedCriterion ) {
switch ( selectedCriterion ) {
case 0: // time
sortOrderCG.set(0, "older first", null);
sortOrderCG.set(1, "newer first", null);
break;
case 1: // subject
case 2: // recipients
case 3: // sender
sortOrderCG.set(0, "alphabetically", null);
sortOrderCG.set(1, "reverse order", null);
break;
case 4: // size
sortOrderCG.set(0, "smaller first", null);
sortOrderCG.set(1, "bigger first", null);
break;
}
}
public void updateValuesToForm() {
threadingGroup.setSelectedFlags( new boolean[] { Settings.threading } );
}
/* ***********************
* listener method *
*************************/
public void itemStateChanged(Item src) {
if ( src == sortByCG ) {
int selected = sortByCG.getSelectedIndex();
setOrderingLabels( selected );
}
}
}
public Settings(MujMail mujMail) {
loadDefaultValues();
//super(Lang.get(Lang.ST_SETTINGS));
this.mujMail = mujMail;
back = new Command(Lang.get(Lang.BTN_BACK), Command.BACK, 0);
ok = new Command(Lang.get(Lang.BTN_OK), Command.OK, 1);
sortForm = new SortForm();
smtpSettingsForm = new SMTPSettingsForm();
otherSettingsForm = new OtherSettingsForm();
pollingSettingsForm = new PollingSettingsForm();
appearanceSettingsForm = new AppearanceSettingsForm();
retrievingSettingsForm = new RetrievingSettingsForm();
storingSettingsForm = new StoringSettingsForm();
mujMailSettingsForm = new MujMailServerSettingsForm();
loadSettings();
//setTitle(Lang.get(Lang.ST_SETTINGS));
}
//sets sortMode for all boxes
public void initSortMode() {
if (DEBUG) System.out.println("DEBUG Settings.initSortMode() - sort modes: " + Integer.toHexString( theBoxSortModes ) );
//theBoxSortModes;
int tmp = theBoxSortModes;
mujMail.getSentBox().setOrdering( Ordering.valueOf( tmp & 0x1 ) );
mujMail.getSentBox().setCriterion( Criterion.valueOf( (tmp & 0xE) >> 1 ) );
//#ifdef MUJMAIL_SEARCH
//mujMail.getSearchBox().setCriterion( Criterion.valueOf( tmp & 0xE ) );
//#endif
tmp = tmp >> 4;
mujMail.outBox.setOrdering( Ordering.valueOf( tmp & 0x1 ) );
mujMail.outBox.setCriterion( Criterion.valueOf( (tmp & 0xE) >> 1 ) );
tmp = tmp >> 4;
mujMail.draft.setOrdering( Ordering.valueOf( tmp & 0x1 ) );
mujMail.draft.setCriterion( Criterion.valueOf( (tmp & 0xE) >> 1 ) );
tmp = tmp >> 4;
mujMail.getInBox().setOrdering( Ordering.valueOf( tmp & 0x1 ) );
mujMail.getInBox().setCriterion( Criterion.valueOf( (tmp & 0xE) >> 1 ) );
tmp = tmp >> 4;
mujMail.getTrash().setOrdering( Ordering.valueOf( tmp & 0x1 ) );
mujMail.getTrash().setCriterion( Criterion.valueOf( (tmp & 0xE) >> 1 ) );
}
public void saveSortSettings(final TheBox box) {
//get selected modes and recalculate sortMode
int sortBy = sortForm.sortByCG.getSelectedIndex();
box.setCriterion( Criterion.valueOf( sortBy ) );
int sortOrder = sortForm.sortOrderCG.getSelectedIndex();
box.setOrdering( Ordering.valueOf( sortOrder ) );
TheBox tmpBox = mujMail.getTrash();
theBoxSortModes = (tmpBox.getCriterion().ordinal << 1) + tmpBox.getOrdering().ordinal;
tmpBox = mujMail.getInBox();
theBoxSortModes = (theBoxSortModes << 4) + (tmpBox.getCriterion().ordinal << 1) + tmpBox.getOrdering().ordinal;
tmpBox = mujMail.draft;
theBoxSortModes = (theBoxSortModes << 4) + (tmpBox.getCriterion().ordinal << 1) + tmpBox.getOrdering().ordinal;
tmpBox = mujMail.outBox;
theBoxSortModes = (theBoxSortModes << 4) + (tmpBox.getCriterion().ordinal << 1) + tmpBox.getOrdering().ordinal;
tmpBox = mujMail.getSentBox();
theBoxSortModes = (theBoxSortModes << 4) + (tmpBox.getCriterion().ordinal << 1) + tmpBox.getOrdering().ordinal;
saveThreadingSettings();
saveSettings(true);
}
/**
* Saves settings for threading - whether the threading is enabled and when
* it's enabled whether the empty root messages have to be shows.
*
* @param box
*/
private void saveThreadingSettings() {
// assumes that THREADING_SHOW_ROOTS is the last check box index
boolean[] selected = new boolean[SortForm.THREADING_ENABLED_CHACKBOX + 1];
sortForm.threadingGroup.getSelectedFlags( selected );
threading = selected[SortForm.THREADING_ENABLED_CHACKBOX];
}
public void showSortFrm(TheBox box) {
sortForm.box = box;
sortForm.sortOrderCG.setSelectedIndex(box.getOrdering().ordinal, true);
sortForm.sortByCG.setSelectedIndex(box.getCriterion().ordinal, true);
sortForm.setOrderingLabels( box.getCriterion().ordinal );
mujMail.getDisplay().setCurrent(sortForm);
}
/**
* Updates values of settings variables to forms that displays settings.
*/
public void updateValuesToForms() {
appearanceSettingsForm.updateValuesToForm();
mujMailSettingsForm.updateValuesToForm();
smtpSettingsForm.updateValuesToForm();
retrievingSettingsForm.updateValuesToForm();
otherSettingsForm.updateValuesToForm();
storingSettingsForm.updateValuesToForm();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -