From 3382276ef780dcefa87142e01ae3b65a2c582f77 Mon Sep 17 00:00:00 2001 From: benfry Date: Sun, 18 Jul 2010 17:05:25 +0000 Subject: [PATCH] permissions dialog box now working, read/write from AndroidManifest.xml works --- android/todo.txt | 3 +- .../processing/app/tools/android/Build.java | 4 +++ .../app/tools/android/Manifest.java | 29 ++++++++++++++----- .../app/tools/android/Permissions.java | 7 +++-- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/android/todo.txt b/android/todo.txt index 1c9deeb07..e0b627f1e 100644 --- a/android/todo.txt +++ b/android/todo.txt @@ -21,6 +21,8 @@ o http://code.google.com/p/processing/issues/detail?id=249 X text ascent/descent problem, text("blah\nblah") doesn't work properly X reverting to using the PGraphics version rather than P2D X because Paint.ascent() is returning negative values +X properly handle setting whatever permissions are necessary +X added dialog box to set permissions P1 _ exceptions with StreamPump and adb devices on osx and linux P1 _ http://dev.processing.org/bugs/show_bug.cgi?id=1545 @@ -29,7 +31,6 @@ P1 _ implement certificates (self-signed) for distribution P1 _ http://developer.android.com/guide/publishing/app-signing.html P1 _ http://dev.processing.org/bugs/show_bug.cgi?id=1430 P1 _ http://code.google.com/p/processing/issues/detail?id=222 -P1 _ properly handle setting whatever permissions are necessary P3 _ Errors show up that .java files are duplicates with the Android tools. P3 _ problem is with the packages and where the preproc is putting the file diff --git a/android/tool/src/processing/app/tools/android/Build.java b/android/tool/src/processing/app/tools/android/Build.java index 622633321..8a8bc6dc2 100644 --- a/android/tool/src/processing/app/tools/android/Build.java +++ b/android/tool/src/processing/app/tools/android/Build.java @@ -117,6 +117,7 @@ class Build { try { manifest = new Manifest(editor); + System.out.println(manifest + " " + manifest.getPackageName()); final File javaFolder = mkdirs(srcFolder, manifest.getPackageName().replace('.', '/')); @@ -140,6 +141,9 @@ class Build { // final File androidXML = new File(tempBuildFolder, "AndroidManifest.xml"); // writeAndroidManifest(androidXML, sketch.getName(), className); manifest.setClassName(className); + File tempManifest = new File(tempBuildFolder, "AndroidManifest.xml"); + manifest.save(tempManifest); + writeBuildProps(new File(tempBuildFolder, "build.properties")); buildFile = new File(tempBuildFolder, "build.xml"); writeBuildXML(buildFile, sketch.getName()); diff --git a/android/tool/src/processing/app/tools/android/Manifest.java b/android/tool/src/processing/app/tools/android/Manifest.java index 73ff9bd46..532390ff5 100644 --- a/android/tool/src/processing/app/tools/android/Manifest.java +++ b/android/tool/src/processing/app/tools/android/Manifest.java @@ -48,7 +48,7 @@ public class Manifest { private Sketch sketch; // entries we care about from the manifest file - private String packageName; +// private String packageName; /** the manifest data read from the file */ private XMLElement xml; @@ -57,22 +57,24 @@ public class Manifest { public Manifest(Editor editor) { this.editor = editor; this.sketch = editor.getSketch(); + load(); } - private String getDefaultPackageName() { + private String defaultPackageName() { Sketch sketch = editor.getSketch(); return Build.basePackage + "." + sketch.getName().toLowerCase(); } public String getPackageName() { - return packageName; +// return packageName; + return xml.getString("package"); } public void setPackageName(String packageName) { - this.packageName = packageName; +// this.packageName = packageName; // this is the package attribute in the root object xml.setString("package", packageName); save(); @@ -126,7 +128,7 @@ public class Manifest { final PrintWriter writer = PApplet.createWriter(file); writer.println(""); writer.println(""); writer.println(" "); @@ -186,11 +188,24 @@ public class Manifest { } + /** + * Save to the sketch folder, so that it can be copied in later. + */ protected void save() { + save(getManifestFile()); + } + + + /** + * Save to another location (such as the temp build folder). + */ + protected void save(File file) { // Sketch sketch = editor.getSketch(); // File manifestFile = new File(sketch.getFolder(), MANIFEST_XML); -// File manifestFile - xml.write(PApplet.createWriter(getManifestFile())); +// File manifestFile + PrintWriter writer = PApplet.createWriter(file); + xml.write(writer); + writer.close(); } diff --git a/android/tool/src/processing/app/tools/android/Permissions.java b/android/tool/src/processing/app/tools/android/Permissions.java index 4ae1fdb79..ba544abb1 100644 --- a/android/tool/src/processing/app/tools/android/Permissions.java +++ b/android/tool/src/processing/app/tools/android/Permissions.java @@ -14,7 +14,7 @@ import processing.app.Editor; import processing.app.Preferences; import processing.app.tools.Tool; //import processing.core.*; -import processing.core.PApplet; +//import processing.core.PApplet; public class Permissions extends JFrame implements Tool { @@ -273,6 +273,8 @@ public class Permissions extends JFrame implements Tool { protected void setSelections(String[] sel) { +// processing.core.PApplet.println("permissions are:"); +// processing.core.PApplet.println(sel); HashMap map = new HashMap(); for (String s : sel) { map.put(s, new Object()); @@ -280,7 +282,8 @@ public class Permissions extends JFrame implements Tool { DefaultListModel model = (DefaultListModel) permissionList.getModel(); for (int i = 0; i < count; i++) { JCheckBox box = (JCheckBox) model.get(i); - box.setSelected(map.containsKey(box.getName())); +// System.out.println(map.containsKey(box.getText()) + " " + box.getText()); + box.setSelected(map.containsKey(box.getText())); } }