+apps=None
+
+def setSize(sz):
+ global size
+
+ size=sz
+
+def getSize():
+ global size
+
+ return(size)
+
+def setApps(aps):
+ """ apps is a dictionary of (x,y)=>appname """
+ global apps
+
+ apps=aps
+
+def getApps():
+ global apps
+
+ if apps==None:
+ tmp={
+ (0,0): 'rtcom-call-ui',
+ (0,1): 'rtcom-messaging-ui',
+ (1,0): 'browser',
+ (1,1): 'osso-addressbook',
+ }
+ setApps(tmp)
+
+ return(apps)
+
+def ensure_dir():
+ dir0=get_user_config_dir()
+ dir=dir0+'/drlaunch'
+ if not os.path.exists(dir):
+ os.mkdir(dir)
+ if not os.path.isdir(dir):
+ raise Exception('Failed to ensure directory' + dir)
+
+ return(dir)
+
+def get_config_fn():
+ dir=ensure_dir()
+ ret=dir + '/config'
+
+ return(ret)
+
+def save():
+ fn=get_config_fn()
+ print "save", fn
+
+ dt={
+ 'version': 1,
+ 'size': getSize(),
+ 'apps': getApps()
+ }
+
+ print "save:", dt
+
+ st=pickle.dumps(dt)
+ f=file(fn, 'w')
+ f.write(st)
+ f.close()
+
+def load():
+ fn=get_config_fn()
+ print "load", fn
+
+ try:
+ f=file(fn, 'r')
+ st=f.read()
+ f.close()
+ dt=pickle.loads(st)
+ except:
+ return
+
+ print "load:", dt
+
+ setSize(dt['size'])
+ setApps(dt['apps'])