from basemodel import ListStage, NotifyStage, EntryStage, YesNoStage, TerminalNumberStage
from smsstage import SMSStage,MessageNotify
from mmscomposestage import MMSComposeStage
import runtime, uiconfig, config
from setting import setting
from smsmanager import smsmgr
from mmstemplate import TemplateStage
from profile import profile
import status
# RHC / [20061123_5]
from mmsutils import MessageHotkeyStage
# RHC / [20061123_5]--
class MessageNotifyStage(NotifyStage):
def __init__(self, message, icon=None):
if not icon:
icon = uiconfig.baloon_message_icon
NotifyStage.__init__(self, message, icon, cb=self.timeout)
def timeout(self):
runtime.manager.back_stage()
return False
class DeleteYesNo(YesNoStage):
def __init__(self, type):
self.type = type
if type == 'sms':
msg = _('Delete all SMS?')
elif type == 'mms':
msg = _('Delete all MMS?')
elif type == 'ipemail':
msg = _('Delete all EMail?')
elif type == 'all':
msg = _('Delete all Messages?')
else:
#print 'Unknown type [%s]' % type
#assert False
pass
YesNoStage.__init__(self, msg, self.yes_cb, self.no_cb, '', uiconfig.baloon_message_delete_icon)
def yes_cb(self):
import utils
utils.remove_messages(self.type, False)
runtime.manager.change_stage(DeletedNotify(self.type))
def no_cb(self):
runtime.manager.back_stage()
from vmHandler import MessageNotifyStage
class DeletedNotify(MessageNotifyStage):
def __init__(self, type):
self.type = type
if type == 'sms':
msg = _('All SMS deleted!')
elif type == 'mms':
msg = _('All MMS deleted!')
elif type == 'ipemail':
msg = _('All email deleted!')
elif type == 'all':
msg = _('All messages deleted!')
else:
#print 'Unknown type [%s]' % type
#assert False
pass
NotifyStage.__init__(self, msg, uiconfig.baloon_message_delete_icon)
def timeout(self):
if self.type == 'all':
runtime.manager.queue_backward(2)
else:
runtime.manager.back_stage()
return False
class MessageDeleteStage(ListStage):
def __init__(self):
self.title = _('DELETE')
_unselbarpos=[]
if profile.get_profile() == 0:#pstn이면
_choice = (_('SMS'),_('MMS'),_('All messages'))
else:
_choice = (_('SMS'),_('All messages'))
ListStage.__init__(self, choice=_choice,title=None,icon=uiconfig.message_delete_icon,titleimage=None,left=_('OK'),right=_('BACK'),isactivate2=False, unselbarpos=_unselbarpos)
def activate(self, index):
from ipemailmanager import ipemailmgr
if profile.get_profile() == 0:#pstn이면
type = ('sms', 'mms', 'all')[index]
else:
type = ('sms', 'all')[index]
if type == 'sms':
if smsmgr.count_allsms() <= 0:
runtime.manager.stack_stage(MessageNotifyStage(_('No SMS')))
return
elif type == 'mms':
from mmsmanager import mmsmgr
if mmsmgr.count_total() <= 0:
runtime.manager.stack_stage(MessageNotifyStage(_('No MMS')))
return
elif type == 'ipemail':
if ipemailmgr.count_allipemail() <= 0:
runtime.manager.stack_stage(MessageNotifyStage(_('No email')))
return
elif type == 'all':
from mmsmanager import mmsmgr
if profile.get_profile() == 0:#pstn이면
if (smsmgr.count_allsms() + mmsmgr.count_total()) <= 0:
runtime.manager.stack_stage(MessageNotifyStage(_('No messages')))
return
else:
if ipemailmgr.count_allipemail() <= 0:
runtime.manager.stack_stage(MessageNotifyStage(_('No messages')))
return
else:
return
runtime.manager.stack_stage(DeleteYesNo(type))
class IpEmailNotifyStage(NotifyStage):
def __init__(self, message, deststage=None):
self.deststage = deststage
icon = uiconfig.baloon_email_icon
NotifyStage.__init__(self, message, icon, self.quitcb)
def quitcb(self):
if self.deststage:
runtime.manager.back_stage(self.deststage)
else:
runtime.manager.back_stage()
return False
class IpEmailUserAccountEdit(EntryStage):
name = 'ipemailuseraccountedit'
title = ''
def __init__(self, mode=None, accountidx=None):
self.mode = mode
self.accountidx = accountidx
EntryStage.__init__(self, _('User/Account'), self.title, _('OK'), _('BACK'))
self.ui.set_max(40)
self.ui.set_automata('multitap', 'lower')
if 'modify' == self.mode:
itemvalue = setting.get_selectedaccount(self.accountidx)[5]
self.ui.set_text(itemvalue)
elif 'add' == self.mode:
self.ui.set_text('$telefonica.net')
self.ui.entry.cursor_start()
def show(self):
EntryStage.show(self)
self.update_F1key()
def activate_menu1(self):
if self.mode == 'add':
runtime.manager.stack_stage(IpEmailPassEdit('add'))
elif self.mode == 'modify':
runtime.manager.stack_stage(IpEmailPassEdit('modify', self.accountidx))
def set_text(self, text):
self.ui.set_text(text)
self.update_F1key()
def update_F1key(self):
if self.ui.is_t9_add_word_mode():
self.ui.set_left(_('OK'))
return
if self.ui.get_text():
self.ui.set_left(_('OK'))
else:
self.ui.set_left('')
def handle_key(self, key):
if key == config.Menu1 and self.ui.left != _('OK'):
return True
else:
ret = EntryStage.handle_key(self, key)
if ret and self.is_active():
self.update_F1key()
return ret
class IpEmailSMTPUserEdit(IpEmailUserAccountEdit):
name = 'ipemailsmtpuseredit'
def __init__(self, mode=None, accountidx=None):
self.mode = mode
self.accountidx = accountidx
EntryStage.__init__(self, _('SMTP/Account'), self.title, _('OK'), _('BACK'))
self.ui.set_max(40)
self.ui.set_automata('multitap', 'lower')
if 'modify' == self.mode:
itemvalue = setting.get_selectedaccount(self.accountidx)[11]
self.ui.set_text(itemvalue)
elif 'add' == self.mode:
self.ui.set_text('$telefonica.net')
self.ui.entry.cursor_start()
def activate_menu1(self):
if self.mode == 'add':
runtime.manager.stack_stage(IpEmailSMTPPassEdit('add'))
elif self.mode == 'modify':
runtime.manager.stack_stage(IpEmailSMTPPassEdit('modify', self.accountidx))
class IpEmailInputPassEdit(EntryStage):
name = 'ipemailinputpassedit'
# RHC / [20061123_5]
def __init__(self, hotkey=False):
self.hotkey = hotkey
# RHC / [20061123_5]--
account = setting.email_account[setting.find_defaultaccountidx()][1]
self.title = account+'['+setting.email_userid+']'
EntryStage.__init__(self, _('Input password'), self.title)
self.ui.set_max(40)
self.ui.set_automata('123', False)
# RHC / [20061123_2]
self.ui.set_left('')
# RHC / [20061123_2]--
# RHC / [20061123_3]
def show(self):
status.password_style = True
EntryStage.show(self)
def destroy(self):
status.password_style = False
EntryStage.destroy(self)
# RHC / [20061123_3]--
# RHC / [20061123_2]
def update_F1key(self):
if self.ui.is_t9_add_word_mode():
self.ui.set_left(_('OK'))
return
if self.ui.get_text():
self.ui.set_left(_('OK'))
else:
self.ui.set_left('')
def handle_key(self, key):
if key == config.Menu1 and self.ui.left != _('OK'):
return True
else:
ret = EntryStage.handle_key(self, key)
if ret and self.is_active():
self.update_F1key()
return ret
def activate_menu1(self):
# RHC / [20061123_3]
status.password_style = False
# RHC / [20061123_3]--
setting.email_password = self.ui.get_text()
runtime.manager.back_stage()
# RHC / [20061123_5]
if self.hotkey:
from ipemailmanager import ipemailmgr
_count = 0
_count += ipemailmgr.countInboxCount()
if _count <= 0:
runtime.manager.stack_stage(NotifyStage(_('Message empty'), uiconfig.baloon_message_icon))
else:
runtime.manager.stack_stage(MessageHotkeyStage(True))
else:
from ipemailstage import IpEmailStage
runtime.manager.stack_stage(IpEmailStage)
# RHC / [20061123_5]--
# RHC / [20061123_2]--
class IpEmailPassEdit(EntryStage):#messages->settings->email account-> ... ->password 설정.
name = 'ipemailpassedit'
title = ''
def __init__(self, mode=None, accountidx=None):
self.accountidx = accountidx
self.mode = mode
EntryStage.__init__(self, _('Input password'), self.title, _('OK'), _('BACK'))
self.ui.set_max(40)
self.ui.set_automata('123', False)
def show(self):
status.password_style = True
EntryStage.show(self)
def destroy(self):
status.password_style = False
EntryStage.destroy(self)
def activate_menu1(self):
status.password_style = False
if 'add' == self.mode:
stage = IpEmailAccountEditStage(_('SMTP server'), _('SMTP SERVER'))
runtime.manager.stack_stage(stage)
elif 'modify' == self.mode:
stage = runtime.manager.find_stage('ipemailuseraccountedit')
if stage:
useraccount = stage.ui.get_text()
setting.set_newaccountitem(self.accountidx, 5, useraccount)
setting.set_newaccountitem(self.accountidx, 6, self.ui.get_text())
runtime.manager.back_stage('ipemailaccountmodifystage')
def handle_key(self, key):
if key == '#':
if self.ui.is_t9_add_word_mode():
return True
# KA: [20070831]hangul lvp-2000
# vpark 2007.08.28 automata
self.automata_idx = (self.automata_idx + 1) % len(config.automata_list)
self.ui.automata = config.automata_list[self.automata_idx]
self.ui.set_fixed_automata(*self.ui.automata)
# KA: [20070831]hangul lvp-2000 ==
return True
else:
return EntryStage.handle_key(self, key)
class IpEmailSMTPPassEdit(IpEmailPassEdit):
name = 'ipemailsmtppassedit'
def __init__(self, mode=None, accountidx=None):
self.accountidx = accountidx
self.mode = mode
EntryStage.__init__(self, _('SMTP/Password'), self.title, _('OK'), _('BACK'))
self.ui.set_max(40)
self.ui.set_automata('123', False)
def activate_menu1(self):
status.password_style = False
if 'add' == self.mode:
runtime.manager.stack_stage(IpEmailAccountEditStage(_('Username'), _('USER NAME')))
elif 'modify' == self.mode:
setting.set_newaccountitem(self.accountidx, 10, 'Yes', False)
stage = runtime.manager.find_stage('ipemailsmtpserverstage')
if stage:
smtpserver = stage.ui.get_text()
setting.set_newaccountitem(self.accountidx, 7, smtpserver, False)
stage = runtime.manager.find_stage('ipemailsmtpuseredit')
if stage:
smtpid = stage.ui.get_text()
setting.set_newaccountitem(self.accountidx, 11, smtpid, False)
smtppass = self.ui.get_text()
setting.set_newaccountitem(self.accountidx, 12, smtppass)
runtime.manager.back_stage('ipemailaccountmodifystage')
class IpEmailSelectReceivingProtocol(ListStage):
name = 'ipemailselectreceivingprotocol'
def __init__(self, accountidx=None):
self.title = _('RECEIVING PROTOCOL')
self.choice = (_('POP'), _('IMAP'))
self.accountidx = accountidx
self.selectprotocol = ''
self.icon = uiconfig.message_setting_icon
ListStage.__init__(self)
if None != self.accountidx:
protocol = setting.get_selectedaccount(self.accountidx)[2]
if 'POP' == protocol:
self.ui.set_focus(0)
elif 'IMAP' == protocol:
self.ui.set_focus(1)
def activate(self, index):
if None != self.accountidx:
if _('POP') == self.choice[index]:
setting.set_newaccountitem(self.accountidx, 2 , 'POP')
elif _('IMAP') == self.choice[index]:
setting.set_newaccountitem(self.accountidx, 2 , 'IMAP')
msg = self.choice[index] + ' ' + _('is selected') + '\n' + \
_('as receiving protocol')
runtime.manager.stack_stage(IpEmailNotifyStage(msg, 'ipemailaccountmodifystage'))
else:
if _('POP') == self.choice[index]:
self.selectprotocol = 'POP'
runtime.manager.stack_stage(IpEmailAccountEditStage(_('POP server'), _('POP SERVER')))
elif _('IMAP') == self.choice[index]:
self.selectprotocol = 'IMAP'
runtime.manager.stack_stage(IpEmailAccountEditStage(_('IMAP server'), _('IMAP SERVER')))
class IpEmailSMTPYesNo(YesNoStage):
def __init__(self, edit=False, accountidx=0):
self.edit = edit
self.accountidx = accountidx
YesNoStage.__init__(self, _('SMTP authentication required?'), self.Yes_CB, self.No_CB, \
'', uiconfig.baloon_email_icon)
def Yes_CB(self):
if self.edit:
runtime.manager.change_stage(IpEmailSMTPUserEdit('modify', self.accountidx))
else:
runtime.manager.change_stage(IpEmailSMTPUserEdit('add', None))
def No_CB(self):
if self.edit:
stage = runtime.manager.find_stage('ipemailsmtpserverstage')
if stage:
setting.set_newaccountitem(self.accountidx, 7, \
stage.ui.get_text(), False)
setting.set_newaccountitem(self.accountidx, 10, 'No')
runtime.manager.back_stage('ipemailaccountmodifystage')
else:
runtime.manager.change_stage(IpEmailAccountEditStage(_('Username'), _('USER NAME')))
class IpEmailAccountEditStage(EntryStage):
def __init__(self, sub_label, title, edit=False, accountidx=0):
self.title = title
self.edit = edit
self.accountidx = accountidx
self.edititem = None
#'0:default','1:email-account','2:receiving-protocol','3:pop-server','4:imap-server',
#'5:user-account','6:user-password','7:smtp-server','8:user-name','9:email-address'
#'10:smtp-auth', '11:smtp-id', '12:smtp-password'
if _('ACCOUNT NAME') == self.title:
self.name = 'ipemailaccountnamestage'
self.edititem = 1
elif _('POP SERVER') == self.title:
self.name = 'ipemailpopserverstage'
self.edititem = 3
elif _('SMTP SERVER') == self.title:
self.name = 'ipemailsmtpserverstage'
self.edititem = 7
elif _('USER NAME') == self.title:
self.name = 'ipemailusernamestage'
self.edititem = 8
elif _('EMAIL ADDRESS') == self.title:
self.name = 'ipemailemailaddressstage'
self.edititem = 9
elif _('IMAP SERVER') == self.title:
self.name = 'ipemailimapserverstage'
self.edititem = 4
EntryStage.__init__(self, sub_label, self.title, _('OK'), _('BACK'))
if _('EMAIL ADDRESS') == self.title:
self.ui.entry.email_mode = True
self.ui.set_max(40)
self.ui.set_automata('multitap', 'lower')
if self.edit and None != self.edititem:
itemvalue = setting.get_selectedaccount(self.accountidx)[self.edititem]
self.ui.set_text(itemvalue)
else:
if _('ACCOUNT NAME') == self.title:
#self.ui.set_text('$telefonica.net')
#self.ui.entry.cursor_start()
pass
elif _('POP SERVER') == self.title:
self.ui.set_text('pop3.telefonica.net')
elif _('SMTP SERVER') == self.title:
self.ui.set_text('smtp.telefonica.net')
elif _('EMAIL ADDRESS') == self.title:
self.ui.set_text('@telefonica.net')
self.ui.entry.cursor_start()
elif _('IMAP SERVER') == self.title:
self.ui.set_text('imap.telefonica.net')
def show(self):
EntryStage.show(self)
self.update_F1key()
def activate_menu1(self):
if _('ACCOUNT NAME') == self.title:
if self.edit:
if setting.check_accountname(self.ui.get_text(), True, \
self.accountidx):
setting.set_newaccountitem(self.accountidx, self.edititem,
self.ui.get_text())
runtime.manager.back_stage()
else:
msg = '<'+self.ui.get_text()+'>' + ' ' + _('already exists')
runtime.manager.stack_stage(MessageNotifyStage(msg, uiconfig.baloon_email_icon))
else:
if self.ui.get_text():
if setting.check_accountname(self.ui.get_text()):
runtime.manager.stack_stage(IpEmailSelectReceivingProtocol)
else:
msg = '<'+self.ui.get_text()+'>' + ' ' + _('already exists')
runtime.manager.stack_stage(MessageNotifyStage(msg, uiconfig.baloon_email_icon))
else:
msg = _('No account name inserted')
runtime.manager.stack_stage(MessageNotifyStage(msg, uiconfig.baloon_email_icon))
elif _('POP SERVER') == self.title:
if self.edit:
setting.set_newaccountitem(self.accountidx, self.edititem, \
self.ui.get_text())
runtime.manager.back_stage()
else:
runtime.manager.stack_stage(IpEmailUserAccountEdit('add', None))
elif _('SMTP SERVER') == self.title:
runtime.manager.stack_stage(IpEmailSMTPYesNo(self.edit, self.accountidx))
elif _('USER NAME') == self.title:
if self.edit:
setting.set_newaccountitem(self.accountidx, self.edititem, \
self.ui.get_text())
runtime.manager.back_stage()
else:
runtime.manager.stack_stage(IpEmailAccountEditStage(_('Email address'), \
_('EMAIL ADDRESS')))
elif _('IMAP SERVER') == self.title:
if self.edit:
setting.set_newaccountitem(self.accountidx, self.edititem, \
self.ui.get_text())
runtime.manager.back_stage()
else:
runtime.manager.stack_stage(IpEmailUserAccountEdit('add', None))
elif _('EMAIL ADDRESS') == self.title:
if self.is_valid_email():
if self.edit:
setting.set_newaccountitem(self.accountidx, self.edititem, \
self.ui.get_text())
runtime.manager.back_stage()
else:
#전체 입력값을 얻어서 계정을 추가한다.
self.Get_InputData()
if runtime.manager.find_stage('ipemailaccountsettingstage'):
runtime.manager.back_stage('ipemailaccountsettingstage')
else:
runtime.manager.back_stage('messagesetting')
runtime.manager.stack_stage(IpEmailAccountSettingStage)
else:
runtime.manager.stack_stage(MessageNotify(_('Not valid email address')))
def Get_InputData(self):
emailaddress = ''
username = ''
smtpserver = ''
password = ''
useraccount = ''
#Roxia Begin cmlim 06.06.12
#popserver = ''
#imapserver = ''
popserver = 'pop3.telefonica.net'
imapserver = 'imap.telefonica.net'
#Roxia End cmlim
receivingprotocol = ''
accoountname = ''
smtpauth = 'No'
smtpid = ''
smtppass = ''
emailaddress = self.ui.get_text()
stage = runtime.manager.find_stage('ipemailusernamestage')
if stage:
username = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailsmtpserverstage')
if stage:
smtpserver = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailpassedit')
if stage:
password = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailuseraccountedit')
if stage:
useraccount = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailpopserverstage')
if stage:
popserver = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailimapserverstage')
if stage:
imapserver = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailselectreceivingprotocol')
if stage:
receivingprotocol = stage.selectprotocol
stage = runtime.manager.find_stage('ipemailaccountnamestage')
if stage:
accoountname = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailsmtpuseredit')
if stage:
smtpauth = 'Yes'
smtpid = stage.ui.get_text()
stage = runtime.manager.find_stage('ipemailsmtppassedit')
if stage:
smtppass = stage.ui.get_text()
#'0:default','1:email-account','2:receiving-protocol','3:pop-server','4:imap-server',
#'5:user-account','6:user-password','7:smtp-server','8:user-name','9:email-address'
#'10:smtp-auth', '11:smtp-id', '12:smtp-password'
newaccount = ['', accoountname, receivingprotocol, popserver, imapserver, \
useraccount, password, smtpserver, username, emailaddress, \
smtpauth, smtpid, smtppass]
setting.add_emailaccount(newaccount)
def set_text(self, text):
self.ui.set_text(text)
self.update_F1key()
def update_F1key(self):
if self.ui.is_t9_add_word_mode():
self.ui.set_left(_('OK'))
return
if self.ui.get_text():
self.ui.set_left(_('OK'))
else:
self.ui.set_left('')
def handle_key(self, key):
if key == config.Menu1 and self.ui.left != _('OK'):
return True
else:
ret = EntryStage.handle_key(self, key)
if ret and self.is_active():
self.update_F1key()
return ret
class IpEmailAccountUIModifyStage(ListStage):
name = 'ipemailaccountUImodifystage'
icon = uiconfig.message_setting_icon
def __init__(self, accountidx):
self.title = _('USER INFORMATION')
self.choice = (_('User name'), _('Email address'))
self.accountidx = accountidx
ListStage.__init__(self)
def activate(self, index):
if _('User name') == self.choice[index]:
stage = IpEmailAccountEditStage(_('User name'), _('USER NAME'),\
True, self.accountidx)
runtime.manager.stack_stage(stage)
elif _('Email address') == self.choice[index]:
stage = IpEmailAccountEditStage(_('Email address'),\
_('EMAIL ADDRESS'), True, self.accountidx)
runtime.manager.stack_stage(stage)
class IpEmailAccountModifyStage(ListStage):
name = 'ipemailaccountmodifystage'
icon = uiconfig.message_setting_icon
def __init__(self, selectedindex):
self.title = _('EMAIL SERVER')
self.selectedindex = selectedindex
ListStage.__init__(self)
def show(self):
self.update_addlist()
ListStage.show(self)
def update_addlist(self):
choice = []
protocol = setting.get_selectedaccount(self.selectedindex)[2]
if 'POP' == protocol:
choice += [_('SMTP server'), _('Receiving protocol'), \
_('POP server'), _('User/Account'), _('User information')]
elif 'IMAP' == protocol:
choice += [_('SMTP server'), _('Receiving protocol'), \
_('IMAP server'), _('User/Account'), _('User information')]
self.change_choice(choice)
def activate(self, index):
if _('SMTP server') == self.choice[index]:
stage = IpEmailAccountEditStage(_('SMTP server'), \
_('SMTP SERVER'), True, self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('Receiving protocol') == self.choice[index]:
stage = IpEmailSelectReceivingProtocol(self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('POP server') == self.choice[index]:
stage = IpEmailAccountEditStage(_('POP server'), \
_('POP SERVER'), True, self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('IMAP server') == self.choice[index]:
stage = IpEmailAccountEditStage(_('IMAP server'), \
_('IMAP SERVER'), True, self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('User/Account') == self.choice[index]:
stage = IpEmailUserAccountEdit('modify', \
self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('User information') == self.choice[index]:
stage = IpEmailAccountUIModifyStage(self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('Account name') == self.choice[index]:
stage = IpEmailAccountEditStage(_('Account name'),
_('ACCOUNT NAME'), True, self.selectedindex)
runtime.manager.stack_stage(stage)
else:
pass
class JobAndNotify(NotifyStage):
def __init__(self, message, cb = None, d=3000, icon=None):
if not icon:
icon = uiconfig.baloon_message_icon
NotifyStage.__init__(self, message, icon, cb = cb, duration = d)
import utils
self.job = utils.Idle(self.job_cb)
def destroy(self):
self.job = None
NotifyStage.destroy(self)
def job_cb(self):
self.do_job()
return False
def do_job(self):
pass
class IpEmailAccountDeleteYesNo(YesNoStage):
def __init__(self, mode, idx=None):
self.mode = mode
self.idx = idx
msg = ''
if 'delete' == self.mode:
msg = _('Delete account?')
elif 'delete all' == self.mode:
msg = _('Delete all accounts?')
YesNoStage.__init__(self, msg, self.yes_cb, self.no_cb, '', uiconfig.baloon_message_delete_icon)
def yes_cb(self):
runtime.manager.change_stage(IpEmailAccountDeleteNotify(self.mode, \
self.idx))
def no_cb(self):
runtime.manager.back_stage()
class IpEmailAccountDeleteNotify(JobAndNotify):
def __init__(self, mode, idx=None):
self.mode = mode
self.selectedindex = idx
msg = ''
if 'delete' == self.mode:
account = setting.get_selectedaccount(self.selectedindex)[1]
msg = _('Email account deleted')
elif 'delete all' == self.mode:
msg = _('All of email account is deleted')
#print msg
JobAndNotify.__init__(self, msg, cb=self.timeout, d=3000, icon=uiconfig.baloon_message_delete_icon)
def do_job(self):
if 'delete' == self.mode:
setting.delete_emailaccount(self.selectedindex)
elif 'delete all' == self.mode:
setting.delete_allemailaccount()
def timeout(self):
if setting.email_account:
runtime.manager.back_stage('ipemailaccountsettingstage')
else:
runtime.manager.back_stage('messagesetting')
return False
class IpEmailAccountOptinsStage(ListStage):
name = 'ipemailaccountoptinsstage'
icon = uiconfig.message_setting_icon
def __init__(self, selectedindex):
self.title = _('OPTIONS')
from setting import MAX_EMAIL_ACCOUNT
if len(setting.email_account) < MAX_EMAIL_ACCOUNT:
self.choice = (_('Add new'), _('Modify'), _('Delete'), _('Delete all'), _('Set as default'))
else:
self.choice = (_('Modify'), _('Delete'), _('Delete all'), _('Set as default'))
self.selectedindex = selectedindex
ListStage.__init__(self)
def activate(self, index):
if _('Add new') == self.choice[index]:
stage = IpEmailAccountEditStage(_('Account name'), _('ACCOUNT NAME'))
runtime.manager.stack_stage(stage)
elif _('Modify') == self.choice[index]:
stage = IpEmailAccountModifyStage(self.selectedindex)
runtime.manager.stack_stage(stage)
elif _('Delete') == self.choice[index]:
runtime.manager.stack_stage(IpEmailAccountDeleteYesNo('delete', self.selectedindex))
elif _('Delete all') == self.choice[index]:
runtime.manager.stack_stage(IpEmailAccountDeleteYesNo('delete all'))
elif _('Set as default') == self.choice[index]:
setting.set_defaultaccount(self.selectedindex)
msg = _('Set as default.')
runtime.manager.stack_stage(IpEmailNotifyStage(msg, 'ipemailaccountsettingstage'))
else:
pass
class IpEmailAccountSettingStage(ListStage):
name = 'ipemailaccountsettingstage'
def __init__(self):
choice = []
icon = uiconfig.message_setting_icon
ListStage.__init__(self, choice, _('EMAIL ACCOUNT'), icon, None, \
_('OPTIONS'))
def show(self):
self.update_addlist()
ListStage.show(self)
def update_addlist(self):
choice = []
choice = setting.get_emailaccountnamelist()
self.change_choice(choice)
def activate(self, index):
runtime.manager.stack_stage(IpEmailAccountOptinsStage(index))
class UserAccountSelectListStage(ListStage):
name = 'UserAccountSelectListStage'
# RHC / [20061123_5]
def __init__(self, hotkey=False):
self.title = _('Select default user/account')
self.hotkey = hotkey
# RHC / [20061123_5]--
self.choice = []
icon = uiconfig.message_setting_icon
ListStage.__init__(self, self.choice, self.title, icon)
def show(self):
self.update_addlist()
ListStage.show(self)
self.ui.set_focus(setting.find_defaultaccountidx())
def update_addlist(self):
choice = []
choice = setting.get_emailaccountnamelist()
self.change_choice(choice)
def activate(self, index):
setting.set_defaultaccount(index)
# RHC / [20061123_5]
if setting.email_password:
if self.hotkey:
from ipemailmanager import ipemailmgr
# RHC / [20061124_2]
_count = 0
# RHC / [20061124_2]--
_count += ipemailmgr.countInboxCount()
if _count <= 0:
runtime.manager.stack_stage(NotifyStage(_('Message empty'), uiconfig.baloon_message_icon))
else:
runtime.manager.stack_stage(MessageHotkeyStage(True))
else:
from ipemailstage import IpEmailStage
runtime.manager.stack_stage(IpEmailStage)
else:
if self.hotkey:
runtime.manager.stack_stage(IpEmailInputPassEdit(True))
else:
runtime.manager.stack_stage(IpEmailInputPassEdit)
# RHC / [20061123_5]--
class SettingStage(ListStage):
name = 'messagesetting'
def __init__(self):
if profile.get_profile() == 0:
_choice = (_('MMS retrieval mode'), _('Terminal number'))
ListStage.__init__(self, _choice, _('SETTINGS'), uiconfig.message_setting_icon)
else:
_choice = (_('Email account'),)
ListStage.__init__(self, _choice, _('SETTINGS'), uiconfig.message_setting_icon, left=_('OK'), right=_('BACK'), isactivate2=False)
def activate(self, index):
stage = None
if profile.get_profile() == 0:
stage = (MMSRetrievalStage, TerminalNoStage)[index]
else:
if setting.email_account:
stage = IpEmailAccountSettingStage
else:
stage = IpEmailAccountEditStage(_('Account name'), _('ACCOUNT NAME'))
if stage != None:
runtime.manager.stack_stage(stage)
class MMSRetrievalStage(ListStage):
icon = uiconfig.message_setting_icon
def __init__(self):
self.title = _('RETRIEVAL MODE')
self.choice = _('Automatic'), _('Manual')
ListStage.__init__(self)
if not setting.mms_retrieval:
self.ui.set_focus(1)
def activate(self, index):
if index == 0:
setting.mms_retrieval = 1
runtime.manager.change_stage(MessageNotifyStage(_('Automatic retrieval mode enabled.'), uiconfig.baloon_message_setting_icon))
else:
setting.mms_retrieval = 0
runtime.manager.change_stage(MessageNotifyStage(_('Manual retrieval mode enabled.'), uiconfig.baloon_message_setting_icon))
def TerminalNoStage():
return TerminalNumberStage(True, True)
def get_stage(index):
if profile.get_profile() == 0 and index == 2:
return TemplateStage()
elif profile.get_profile() != 0 and index == 1:#3:
return TemplateStage()
else:
if profile.get_profile() == 0:#pstn이면
_stages = SMSStage, MMSComposeStage, None, MessageDeleteStage, SettingStage
else:
#_stages = SMSStage, None, MessageDeleteStage, SettingStage
_stages = SMSStage, None
return _stages[index]