Jan BerkelのAndroidプラグインを拡張しながら、新しいクラスを作成しようとしています。これを使用して、scalaライブラリ全体をroot化された電話にプッシュする機能を提供したいと思います。
これまでのところ、すでにコンピューターにダウンロードしたローカルバージョンのScalaを使用するコードがありますが、Scalaのバージョンがない場合は、ダウンロードできるようにしたいと思います。
コードの関連部分は次のとおりです。
def makePermission(version: String) {
val home = JSystem.getProperty("user.home")
val scalaFolder = new JFile(home + "/.sbt/boot/scala-" + version)
if (!scalaFolder.exists) {
// TODO: Try to download the Scala version in "version"
}
val permission = new JFile(scalaFolder, "scala-library.xml")
if (scalaFolder.exists && !permission.exists) {
val writer = new PrintWriter(permission)
writer.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>")
writer.println("")
writer.println("<permissions>")
writer.println(" <library")
writer.println(" name=\"scala-library-" + version + "\"")
writer.println(" file=\"/system/framework/scala-library-" + version + "\"")
writer.println(" />")
writer.println("</permissions>")
writer.close
}
}
たとえば、次のように関数を呼び出すと、
makePermission("2.9.1")
Scala 2.9.1があり、フォルダーにscala-library.xmlが作成されていることがわかりscala-2.9.1
ます。
これ
makePermission("2.8.1")
を行うと、Scala 2.8.1がないことがわかります。ダウンロードして、scala-2.8.1
フォルダーにscala-library.xmlを作成します。
ただし、これ
makePermission("3.0.0")
を行うと、Scala 3.0.0がないことがわかります。ダウンロードしてみてください。ただし、Scala 3.0.0が存在しないことを確認し、残りをスキップしてください。
私はそのTODO
部分をどのように行うのか困惑しているので、どんな助けでもありがたいです。:D