package Ġcom . ts iem ens . android script er . script Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġcom . cha quo . python . Py Exception Ċ import Ġcom . cha quo . python . PyObject Ċ import Ġcom . cha quo . python . Python Ċ import Ġcom . cha quo . python . android . Android Platform Ċ import Ġjava . lang . Exception Ċ Ċ class ĠScript ( context : ĠContext , Ġmod Name : ĠString , Ġscript Code : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġmodule : ĠPyObject ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ throws : ĠPy Exception ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġensure Python Started ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġmod Builder Ġ= ĠPython . getInstance (). getModule (" android script er . mod builder ") ĊĠĠĠĠĠĠĠ Ġmodule Ġ= Ġmod Builder . call Attr (" compile _ module ", Ġmod Name , Ġscript Code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun ( api : ĠApi ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpy Api Mod Ġ= ĠPython . getInstance (). getModule (" android script er . api ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpy Api Ġ= Ġpy Api Mod . call Attr (" new Api ", Ġapi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpy Runner Ġ= ĠPython . getInstance (). getModule (" android script er . runner ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpy Runner . call Attr (" run _ script ", Ġpy Api , Ġmodule ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . log Internal (" SCRIPT ĠEXIT ED ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPy Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . cause ?. java Class Ġ== ĠInterruptedException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Script Ġinterrupted ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . log Internal (" SCRIPT ĠINTERRUP TED ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġe . message ? :" ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . log Internal (" SCRIPT ĠEXCEPTION : Ġ${ e . message }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel = Api . LogLevel . ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġe . message ? :" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . log Internal (" JAVA ĠEXCEPTION : Ġ${ e . message }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel = Api . LogLevel . ERROR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠApi :: class . java . simple Name ĊĊĠĠĠĠĠĠĠ Ġfun Ġensure Python Started ( ctx : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Python . is Started ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPython . start ( Android Platform ( ctx )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }