import mmsconfig, utils, os, os.path, runtime, uiconfig
try:
from basemodel import NotifyStage, ListStage
except:
pass
def MMS_EachFilesize(fname, kb_type=False):
if kb_type:
return utils.get_size_kb(fname)
else:
return utils.get_file_size(fname)
def MMS_FileName(dirname):
if not dirname:
return None
return os.path.split(dirname)[1]
def MMS_Unicode_len(text):
t = text.strip()
try:
t=t.encode('utf-16')
except:
pass
_len = (len(t)-2)/2
return _len
def MMS_filemove(src_file, dest_file):
cmd = 'mv "%s" "%s"' % (src_file, dest_file)
os.system(cmd)
def MMS_chmod(mod, fname):
if not mod or not fname:
return
cmd = 'chmod %s %s'%(mod, fname)
os.system(cmd)
class JobAndNotify(NotifyStage):
def __init__(self, message, cb = None, d=3000):
icon = uiconfig.baloon_message_icon
NotifyStage.__init__(self, message, icon, cb = cb, duration = d)
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
# RHC / [20061123_5]
def MMSHotkey(start=True):
# RHC / [20061123_5]--
from profile import profile
_count = 0
if profile.get_profile() != 0:
# RHC / [20061121_1]
import status
if status.now_sending_email == True:
runtime.manager.stack_stage(NotifyStage(_('Sending IP email')+'...', uiconfig.baloon_email_icon))
return
# RHC / [20061121_1]--
# RHC / [20061123_5]
if start:
from setting import setting
from message import IpEmailInputPassEdit, UserAccountSelectListStage
# RHC / [20061124_1]
from ipemailstage import MessageNotify
# RHC / [20061124_1]--
if 1 < len(setting.email_account):
stage = UserAccountSelectListStage(True)
else:
if 1 == len(setting.email_account):
setting.set_defaultaccount(0)
if setting.email_password:
stage = MessageHotkeyStage(True)
else:
stage = IpEmailInputPassEdit(True)
else:
# RHC / [20061124_1]
stage = MessageNotify(_('Email setting is empty'))
# RHC / [20061124_1]--
else:
stage = MessageHotkeyStage(True)
runtime.manager.stack_stage(stage)
# RHC / [20061123_5]--
else:
from smsmanager import smsmgr
from mmsmanager import mmsmgr
_count += smsmgr.count()
_count += mmsmgr.count()
if _count <= 0:
runtime.manager.stack_stage(NotifyStage(_('Message empty'), uiconfig.baloon_message_icon))
else:
runtime.manager.stack_stage(MessageHotkeyStage())
class EmailConnectError(Exception):
pass
class MessageHotkey_Emailreceive(JobAndNotify):
def __init__(self):
JobAndNotify.__init__(self, _('Wait...'), cb=self.success, d=1000)
self.count = 0
def do_job(self):
runtime.evas.render_now()
from ipemailmanager import ipemailmgr
self.count += ipemailmgr.countInboxCount()
def handle_key(self, key):
import config
if key in (config.OffHook, config.Green):
return False
return True
def success(self):
if self.count <= 0:
runtime.manager.change_stage(NotifyStage(_('Message empty'), uiconfig.baloon_message_icon))
else:
runtime.manager.change_stage(MessageHotkeyStage(True))
class MessageHotkeyStage(ListStage):
name = 'messagehotkey'
def __init__(self, isemail=False):
self.isemail = isemail
self.sms = []
self.mms = []
self.email = []
self.msg = []
# RHC / [20061127_2]
import status
status.email_inbox_message_all = None
# RHC / [20061127_2]--
ListStage.__init__(self, '', '')
self.makeicon()
self.activate_focus = -1
def show(self):
_list = self.makelist()
if len(_list) <= 0:
runtime.manager.change_stage(NotifyStage(_('Message empty'), uiconfig.baloon_message_icon))
return
self.change_choice(_list)
self.makeicon()
ListStage.show(self)
if self.activate_focus != -1:
try:
self.ui.set_focus(self.activate_focus)
except:
pass
if self.msg[self.ui.get_focus()][0] == 'mms' and self.msg[self.ui.get_focus()][3] == uiconfig.list_icon_mms_unload:
self.ui.set_left(_('DOWNLOAD'))
else:
self.ui.set_left(_('OK'))
def sort(self):
def sort_func(x,y):
return -(cmp(x[1], y[1]))
self.msg.sort(sort_func)
def makelist(self):
_list = []
mmslist = []
smslist = []
emailst = []
from profile import profile
if profile.get_profile() == 0:
from smsmanager import smsmgr
from mmsmanager import mmsmgr
mmslist = mmsmgr.get_inbox_list()
smslist = smsmgr.get_inbox_list()
else:
if self.isemail:
from ipemailmanager import ipemailmgr
emailst = ipemailmgr.get_inbox_list()
self.msg = smslist+mmslist+emailst
self.sort()
for i in self.msg:
_list.append(i[2])
self.ui.set_title(_('INBOX') + '(' + str(len(self.msg)) +')')
return _list
def makeicon(self):
icons = []
for i in self.msg:
icons.append(i[3])
self.ui.remove_all_icon_columns()
self.ui.create_icon_column(60, tuple(icons))
def activate(self, index):
self.activate_focus = index
if self.msg[index][0] == 'sms':
from smsstage import SMSList_activate
SMSList_activate(self.msg[index][4])
elif self.msg[index][0] == 'mms':
from mmsbox import MMSInboxlist_activate
MMSInboxlist_activate(self.msg[index][4])
elif self.msg[index][0] == 'email':
from ipemailstage import EmailList_activate
EmailList_activate(self.msg[index][4])
def handle_key(self, key):
ret = ListStage.handle_key(self, key)
try:
if key in ('Up', 'Down'):
if self.msg[self.ui.get_focus()][0] == 'mms' and self.msg[self.ui.get_focus()][3] == uiconfig.list_icon_mms_unload:
self.ui.set_left(_('DOWNLOAD'))
else:
self.ui.set_left(_('OK'))
except:
pass
return ret
def back_activate_menu1(self):
from mmsbox import MMSInboxoptions
runtime.manager.stack_stage(MMSInboxoptions())
def back_activate_menu2(self):
pass