User Tools

Site Tools


import_a_script_directly_into_ll

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
import_a_script_directly_into_ll [2015/02/25 21:41]
lm13
import_a_script_directly_into_ll [2016/01/23 21:46] (current)
lm13
Line 1: Line 1:
 ==== External API: Manage Scripts ==== ==== External API: Manage Scripts ====
- 
-[[https://​drive.google.com/​folderview?​id=0B40xU-30MxN7flhicHg3Y05XMWplMTl3c1RJU0ZuWUZ3emJxZG56RDdma2xpMXVvRmRlaXc&​usp=sharing|Download]] the current Version of the Library and drop the .aar file in your projects lib folder (/app/libs) if the folder does not exist, create it. 
  
 Add this to build.gradle of your apps module: Add this to build.gradle of your apps module:
-<sxh java;>repositories{ +<sxh java>
-    flatDir { +
-        dirs '​libs'​ +
-    } +
-+
 dependencies { dependencies {
-    compile(name:'name-of-file',​ext:'aar')+    compile 'com.faendir.lightninglauncher:scriptlib:​versioncode'
     //other dependencies...     //other dependencies...
 }</​sxh>​ }</​sxh>​
-and replace //name-of-file// with the actual file name (without ​the extension).+and replace //versioncode// with the latest version available. 
 +(You can check for the latest version [[https://​bintray.com/​f43nd1r/​maven/​scriptlib/​view|here]])
  
-Now you can import the class ''​com.app.lukas.script.ScriptManager''​ in any of your modules files. +Now you can import the class ''​com.faendir.lightning_launcher.scriptlib.ScriptManager''​ in any of your modules files. 
-The ''​ScriptManager''​ provides ​two static methods: ​''​loadScript''​ and ''​runScript''​. ​+The ''​ScriptManager''​ provides ​several ​static methods:
  
- +Method signatures: ​(v1.6.7 for Repository Importer 1.10, possibly compatible with older versions) 
-Method signatures:​ +<sxh java;>​loadScript(Context context, String code / int codeResourceId, String name, int flags, boolean forceUpdate, final Listener listener)</​sxh>​
-<sxh java;>​loadScript(Context context, String code, String name, int flags, final Listener listener)</​sxh>​+
   * ''​context''​ can be any context   * ''​context''​ can be any context
-  * ''​code''​ the code the script should have +  * ''​code''​ the code the script should have / ''​codeResourceId''​ the raw resource id containing the script code 
-  * ''​name''​ name for the new script. Be sure to use as unique names for scripts as possible, because if a script with the same name already exists, it may be overwritten. It may be a good idea to atrt your script name with your projects name (e.g. "​layoutmanager_save"​).+  * ''​name''​ name for the new script. Be sure to use as unique names for scripts as possible, because if a script with the same name already exists, it may be overwritten. It may be a good idea to start your script name with your projects name (e.g. "​layoutmanager_save"​).
   * ''​flags''​ sum of flags for the script   * ''​flags''​ sum of flags for the script
        * 2: App menu        * 2: App menu
        * 4: Item menu        * 4: Item menu
        * 8: Custom Menu        * 8: Custom Menu
 +  * ''​forceUpdate''​ (optional, default is true) Whether to directly overwrite a script with the same name or not. **If this is set to false, you have to implement the confirmUpdate method in your listener.**
   * ''​listener''​ a ''​ScriptManager.listener''​ which will retrieve the ID once the script is loaded   * ''​listener''​ a ''​ScriptManager.listener''​ which will retrieve the ID once the script is loaded
  
-<sxh java;>​runScript(Context context, int id, String data) </​sxh>​+<sxh java;>​runScript(Context context, int id, String data, boolean background) </​sxh>​
   * ''​context''​ can be any context   * ''​context''​ can be any context
   * ''​id''​ the id of the script which should be run, usually as returned by a ''​ScriptManager.listener''​   * ''​id''​ the id of the script which should be run, usually as returned by a ''​ScriptManager.listener''​
   * ''​data''​ an optional string containing additional data. Can be retrieved in the script with ''​LL.getEvent().getData()''​   * ''​data''​ an optional string containing additional data. Can be retrieved in the script with ''​LL.getEvent().getData()''​
 +  * ''​background''​ (optional, default is false) whether this script should run in the background or not
 +
 +<sxh java;>​enableDebug()</​sxh>​
 +  * Call this method to see extensive Log output from the library
 +
 +<sxh java;>​askForRepositoryImporterInstallationIfMissing(boolean value)</​sxh>​
 +  * By Default the library shows a dialog when the Repository Importer is missing. With this method you can disable/​enable that at will.
 +
 +<sxh java;>​sendIntentToLauncher(Context context, Intent intent)</​sxh>​
 +  * ''​context''​ can be any context
 +  * ''​intent''​ is the intent which should be sent
 +
 +<sxh java;>​replaceLogger(Logger logger)</​sxh>​
 +  * ''​logger''​ a logger. Use this if you want to log to an alternative place (subclass Logger)
 +
 +Listener methods:
 +<sxh java;>​onLoadFinished(int id);</​sxh>​
 +  * This method is called when the load succeeded with the ID of the imported script
 +
 +<sxh java;>​onError()</​sxh>​
 +  * Implement this method if you want to receive a callback when an error occurs (recommended). Do not call super.onError().
 +
 +<sxh java;>​confirmUpdate(UpdateCallback callback)</​sxh>​
 +  * Implement this method if you've set the forceUpdate flag to false. You can e.g. show a Dialog here asking the user what to do. You have to call callback.callback with a result (boolean) afterwards.
  
  
-**//Hint: This requires the Repository Importer to be installed on the android device. If it is not installed, it will give a prompt to do so.//**+**//Hint: This requires the Repository Importer to be installed on the android device.//**
import_a_script_directly_into_ll.1424900482.txt.gz · Last modified: 2015/02/25 21:41 by lm13