Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e13cb961 authored by Thales Lima's avatar Thales Lima
Browse files

Update tool that fill screen with icons

Add options to change the number of screens, columns, rows and the database name.

Fix: 226390690
Test: run the script and restart the launcher
Change-Id: I13cc2b84ae76449991b65226367bb8c09fbeaa04
parent 042482e9
Loading
Loading
Loading
Loading

fill_screens.py

deleted100755 → 0
+0 −90
Original line number Diff line number Diff line
#!/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.android.calculator2/com.android.calculator2.Calculator",
  "com.android.providers.downloads.ui/com.android.providers.downloads.ui.DownloadList",
  "com.android.settings/com.android.settings.Settings",
  "com.android.mms/com.android.mms.ui.ConversationList",
  "com.android.contacts/com.android.contacts.activities.PeopleActivity",
  "com.android.dialer/com.android.dialer.DialtactsActivity"
]

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)