OSDN Git Service

release-request-276f9f52-87fd-4915-bd79-9a2f0ee77433-for-git_oc-release-4090213 snap...
[android-x86/packages-apps-Launcher3.git] / fill_screens.py
1 #!/usr/bin/env python2.5
2
3 import cgi
4 import os
5 import shutil
6 import sys
7 import sqlite3
8
9 SCREENS = 5
10 COLUMNS = 4
11 ROWS = 4
12 CELL_SIZE = 110
13
14 DIR = "db_files"
15 AUTO_FILE = "launcher.db"
16
17 APPLICATION_COMPONENTS = [
18   "com.android.calculator2/com.android.calculator2.Calculator",
19   "com.android.providers.downloads.ui/com.android.providers.downloads.ui.DownloadList",
20   "com.android.settings/com.android.settings.Settings",
21   "com.android.mms/com.android.mms.ui.ConversationList",
22   "com.android.contacts/com.android.contacts.activities.PeopleActivity",
23   "com.android.dialer/com.android.dialer.DialtactsActivity"
24 ]
25
26 def usage():
27   print "usage: fill_screens.py -- fills up the launcher db"
28
29
30 def make_dir():
31   shutil.rmtree(DIR, True)
32   os.makedirs(DIR)
33
34 def pull_file(fn):
35   print "pull_file: " + fn
36   rv = os.system("adb pull"
37     + " /data/data/com.android.launcher/databases/launcher.db"
38     + " " + fn);
39   if rv != 0:
40     print "adb pull failed"
41     sys.exit(1)
42
43 def push_file(fn):
44   print "push_file: " + fn
45   rv = os.system("adb push"
46     + " " + fn
47     + " /data/data/com.android.launcher/databases/launcher.db")
48   if rv != 0:
49     print "adb push failed"
50     sys.exit(1)
51
52 def process_file(fn):
53   print "process_file: " + fn
54   conn = sqlite3.connect(fn)
55   c = conn.cursor()
56   c.execute("DELETE FROM favorites")
57
58   intentFormat = "#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=%s;end"
59
60   id = 0;
61   for s in range(SCREENS):
62     for x in range(ROWS):
63       for y in range(COLUMNS):
64         id += 1
65         insert = "INSERT into favorites (_id, title, intent, container, screen, cellX, cellY, spanX, spanY, itemType, appWidgetId, iconType) VALUES (%d, '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d)"
66         insert = insert % (id, "title", "", -100, s, x, y, 1, 1, 2, -1, 0)
67         c.execute(insert)
68         folder_id = id
69
70         for z in range(15):
71           id += 1
72           intent = intentFormat % (APPLICATION_COMPONENTS[id % len(APPLICATION_COMPONENTS)])
73           insert = "INSERT into favorites (_id, title, intent, container, screen, cellX, cellY, spanX, spanY, itemType, appWidgetId, iconType) VALUES (%d, '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d)"
74           insert = insert % (id, "title", intent, folder_id, 0, 0, 0, 1, 1, 0, -1, 0)
75           c.execute(insert)
76
77   conn.commit()
78   c.close()
79
80 def main(argv):
81   if len(argv) == 1:
82     make_dir()
83     pull_file(AUTO_FILE)
84     process_file(AUTO_FILE)
85     push_file(AUTO_FILE)
86   else:
87     usage()
88
89 if __name__=="__main__":
90   main(sys.argv)