User Tools

Site Tools


script_app_drawer

**This is an old revision of the document!** ----

A PCRE internal error occured. This might be caused by a faulty plugin

====== About the script ====== * Purpose : This script will fill any container with all of your apps, like an App Drawer * Author : [[https://plus.google.com/+LukasMorawietz|LM13]] * Current Version : 1.0 * Link: ====== Changelog ====== * Version 1.0 (18/7/2014): initial release in wiki ====== How to use the script ====== * Set the script in the resumed event of the container * configure what you want at the beginning of the script ====== Issues and Hints ====== * As the script is based on the original app drawer, you may have to load the original app drawer once to detect installed or uninstalled apps * first load may take some time //please report all bugs in the g+ community!// ====== Script ====== <code>//config var columns=3;//has to be an Integer >=1 //endconfig; var e=LL.getEvent(); var c=e.getContainer(); var d=LL.getContainerById(99); var ditems=d.getItems(); var db=JSON.parse(c.getTag()); if(db==null) { db=[]; } for(a0=0;a0<ditems.length;a0++) resetTag(ditems.getAt(a0)); for(a1=0;a1<db.length;a1++) { if(LL.getItemById(db[a1][0])==null) { if(LL.getItemById(db[a1][1])!=null) c.removeItem(LL.getItemById(db[a1][1])); if(a1==db.length-1)db.pop(); else { db[a1]=db.pop(); a1--; } } else { LL.getItemById(db[a1][0]).setTag("saved"); } } for(a2=0;a2<ditems.length;a2++) check(ditems.getAt(a2)); c.setTag(JSON.stringify(db)); var citems=c.getItems(); var labels=[]; for(a4=0;a4<db.length;a4++) labels[labels.length]=LL.getItemById(db[a4][1]).getLabel(); labels.sort(); LL.writeToLogFile(db+"\n\n"+labels,false); for(a5=0;a5<labels.length;a5++) c.getItemByLabel(labels[a5]).setCell(a5%columns,Math.floor(a5/columns),a5%columns+1,Math.floor(a5/columns)+1); function check(item) { if(item.getType()=="Folder") { var fitems= item.getContainer().getItems(); for(a3=0;a3<fitems.length;a3++) check(fitems.getAt(a3)); } else if(item.getTag()!="saved") { var newItem= c.addShortcut(item.getLabel(),item.getIntent(),0,0); newItem.setDefaultIcon(item.getDefaultIcon()); db.push([item.getId(),newItem.getId()]); } } function resetTag(item) { if(item.getType()=="Folder") { var fitems= item.getContainer().getItems(); for(a5=0;a5<fitems.length;a5++) resetTag(fitems.getAt(a5)); } else { item.setTag(null); } } </code>

script_app_drawer.1405806112.txt.gz · Last modified: 2014/07/19 21:41 by lm13