From 1982c4be5ac89024a51acbffbb74ba509250ee6f Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Thu, 25 Aug 2011 13:49:43 -0700 Subject: Script to fill launcher screens with full folders -> Useful for testing. The script can be easily modified to fill the screens quickly in other ways to aid in testing. Change-Id: I64ffd13b28c5cf04d0aa947eb1293a203ca9be73 --- fill_screens.py | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 fill_screens.py (limited to 'fill_screens.py') diff --git a/fill_screens.py b/fill_screens.py new file mode 100755 index 000000000..9607c8068 --- /dev/null +++ b/fill_screens.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python2.5 + +import cgi +import os +import shutil +import sys +import sqlite3 + +SCREENS = 5 +COLUMNS = 4 +ROWS = 4 +CELL_SIZE = 110 + +DIR = "db_files" +AUTO_FILE = "launcher.db" + +APPLICATION_COMPONENTS = [ + "com.google.android.apps.books/com.google.android.apps.books.app.BooksActivity", + "com.android.calculator2/com.android.calculator2.Calculator", + "com.google.android.camera/com.android.camera.Camera", + "com.google.android.carhome/com.google.android.carhome.CarHome", + "com.android.providers.downloads.ui/com.android.providers.downloads.ui.DownloadList", + "com.google.android.gallery3d/com.android.gallery3d.app.Gallery", + "com.google.android.apps.maps/com.google.android.maps.MapsActivity" +] + +def usage(): + print "usage: fill_screens.py -- fills up the launcher db" + + +def make_dir(): + shutil.rmtree(DIR, True) + os.makedirs(DIR) + +def pull_file(fn): + print "pull_file: " + fn + rv = os.system("adb pull" + + " /data/data/com.android.launcher/databases/launcher.db" + + " " + fn); + if rv != 0: + print "adb pull failed" + sys.exit(1) + +def push_file(fn): + print "push_file: " + fn + rv = os.system("adb push" + + " " + fn + + " /data/data/com.android.launcher/databases/launcher.db") + if rv != 0: + print "adb push failed" + sys.exit(1) + +def process_file(fn): + print "process_file: " + fn + conn = sqlite3.connect(fn) + c = conn.cursor() + c.execute("DELETE FROM favorites") + + intentFormat = "#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=%s;end" + + id = 0; + for s in range(SCREENS): + for x in range(ROWS): + for y in range(COLUMNS): + id += 1 + 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)" + insert = insert % (id, "title", "", -100, s, x, y, 1, 1, 2, -1, 0) + c.execute(insert) + folder_id = id + + for z in range(15): + id += 1 + intent = intentFormat % (APPLICATION_COMPONENTS[id % len(APPLICATION_COMPONENTS)]) + 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)" + insert = insert % (id, "title", intent, folder_id, 0, 0, 0, 1, 1, 0, -1, 0) + c.execute(insert) + + conn.commit() + c.close() + +def main(argv): + if len(argv) == 1: + make_dir() + pull_file(AUTO_FILE) + process_file(AUTO_FILE) + push_file(AUTO_FILE) + else: + usage() + +if __name__=="__main__": + main(sys.argv) -- cgit v1.2.3