Skip to content

Commit 3787f78

Browse files
committed
store android settings in sketch.properties file
1 parent dcd95c8 commit 3787f78

File tree

2 files changed

+98
-9
lines changed

2 files changed

+98
-9
lines changed

src/processing/mode/android/AndroidBuild.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ class AndroidBuild extends JavaBuild {
4747
static public final int WATCHFACE = 2;
4848
static public final int CARDBOARD = 3;
4949

50+
static public final String DEFAULT_COMPONENT = "app";
51+
static public final String DEFAULT_BASE_PACKAGE = "processing.test";
52+
static public final String DEFAULT_VERSION = "1";
53+
static public final String DEFAULT_PRETTY_VERSION = "1.0";
54+
5055
// TODO: ask base package name when exporting signed apk
5156
// static final String basePackage = "changethispackage.beforesubmitting.tothemarket";
5257
static final String basePackage = "processing.test";
@@ -196,6 +201,9 @@ public File createProject(boolean wear) throws IOException, SketchException {
196201

197202
manifest = new Manifest(sketch, appComponent, rewriteManifest);
198203
manifest.setSdkTarget(target_sdk);
204+
205+
206+
199207
rewriteManifest = false;
200208

201209
// grab code from current editing window (GUI only)

src/processing/mode/android/AndroidEditor.java

Lines changed: 90 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import processing.app.Mode;
2828
import processing.app.Platform;
2929
import processing.app.Preferences;
30+
import processing.app.Settings;
3031
import processing.app.SketchException;
3132
import processing.app.ui.EditorException;
3233
import processing.app.ui.EditorState;
@@ -49,19 +50,29 @@
4950

5051
@SuppressWarnings("serial")
5152
public class AndroidEditor extends JavaEditor {
52-
private int appComponent = AndroidBuild.FRAGMENT;
53+
private int appComponent;
54+
55+
private Settings settings;
5356
private boolean resetManifest = false;
5457

5558
private AndroidMode androidMode;
5659

5760
private java.util.Timer updateDevicesTimer;
5861

62+
private JCheckBoxMenuItem fragmentItem;
63+
private JCheckBoxMenuItem wallpaperItem;
64+
private JCheckBoxMenuItem watchfaceItem;
65+
private JCheckBoxMenuItem cardboardItem;
66+
5967
protected AndroidEditor(Base base, String path, EditorState state,
6068
Mode mode) throws EditorException {
6169
super(base, path, state, mode);
70+
71+
loadModeSettings();
72+
6273
androidMode = (AndroidMode) mode;
6374
androidMode.resetUserSelection();
64-
androidMode.checkSDK(this);
75+
androidMode.checkSDK(this);
6576
}
6677

6778
@Override
@@ -240,10 +251,10 @@ public void actionPerformed(ActionEvent e) {
240251

241252
menu.addSeparator();
242253

243-
final JCheckBoxMenuItem fragmentItem = new JCheckBoxMenuItem("App");
244-
final JCheckBoxMenuItem wallpaperItem = new JCheckBoxMenuItem("Wallpaper");
245-
final JCheckBoxMenuItem watchfaceItem = new JCheckBoxMenuItem("Watch Face");
246-
final JCheckBoxMenuItem cardboardItem = new JCheckBoxMenuItem("Cardboard");
254+
fragmentItem = new JCheckBoxMenuItem("App");
255+
wallpaperItem = new JCheckBoxMenuItem("Wallpaper");
256+
watchfaceItem = new JCheckBoxMenuItem("Watch Face");
257+
cardboardItem = new JCheckBoxMenuItem("Cardboard");
247258

248259
fragmentItem.addActionListener(new ActionListener() {
249260
@Override
@@ -289,11 +300,11 @@ public void actionPerformed(ActionEvent e) {
289300
androidMode.showSelectComponentMessage(AndroidBuild.CARDBOARD);
290301
}
291302
});
292-
293-
fragmentItem.setState(true);
303+
304+
fragmentItem.setState(false);
294305
wallpaperItem.setState(false);
295306
watchfaceItem.setSelected(false);
296-
cardboardItem.setSelected(false);
307+
cardboardItem.setSelected(false);
297308

298309
menu.add(fragmentItem);
299310
menu.add(wallpaperItem);
@@ -455,6 +466,17 @@ private void setAppComponent(int opt) {
455466
if (appComponent != opt) {
456467
appComponent = opt;
457468
resetManifest = true;
469+
470+
if (appComponent == AndroidBuild.FRAGMENT) {
471+
settings.set("component", "app");
472+
} else if (appComponent == AndroidBuild.WALLPAPER) {
473+
settings.set("component", "wallpaper");
474+
} else if (appComponent == AndroidBuild.WATCHFACE) {
475+
settings.set("component", "watchface");
476+
} else if (appComponent == AndroidBuild.CARDBOARD) {
477+
settings.set("component", "cardboard");
478+
}
479+
settings.save();
458480
}
459481
}
460482

@@ -751,4 +773,63 @@ public void run() {
751773
public int getAppComponent() {
752774
return appComponent;
753775
}
776+
777+
private void loadModeSettings() {
778+
File sketchProps = new File(sketch.getCodeFolder(), "sketch.properties");
779+
try {
780+
settings = new Settings(sketchProps);
781+
boolean save = false;
782+
String component;
783+
if (!sketchProps.exists()) {
784+
component = AndroidBuild.DEFAULT_COMPONENT;
785+
settings.set("component", component);
786+
settings.set("basePackage", AndroidBuild.DEFAULT_BASE_PACKAGE);
787+
settings.set("version", AndroidBuild.DEFAULT_VERSION);
788+
settings.set("prettyVersion", AndroidBuild.DEFAULT_PRETTY_VERSION);
789+
save = true;
790+
} else {
791+
component = settings.get("component");
792+
if (component == null) {
793+
component = AndroidBuild.DEFAULT_COMPONENT;
794+
settings.set("component", component);
795+
save = true;
796+
}
797+
String basePackage = settings.get("basePackage");
798+
if (basePackage == null) {
799+
basePackage = AndroidBuild.DEFAULT_BASE_PACKAGE;
800+
settings.set("basePackage", basePackage);
801+
save = true;
802+
}
803+
String version = settings.get("version");
804+
if (version == null) {
805+
version = AndroidBuild.DEFAULT_VERSION;
806+
settings.set("version", version);
807+
save = true;
808+
}
809+
String prettyVersion = settings.get("prettyVersion");
810+
if (prettyVersion == null) {
811+
prettyVersion = AndroidBuild.DEFAULT_PRETTY_VERSION;
812+
settings.set("version", prettyVersion);
813+
save = true;
814+
}
815+
}
816+
if (save) settings.save();
817+
818+
if (component.equals("app")) {
819+
appComponent = AndroidBuild.FRAGMENT;
820+
fragmentItem.setState(true);
821+
} else if (component.equals("wallpaper")) {
822+
appComponent = AndroidBuild.WALLPAPER;
823+
wallpaperItem.setState(true);
824+
} else if (component.equals("watchface")) {
825+
appComponent = AndroidBuild.WATCHFACE;
826+
watchfaceItem.setState(true);
827+
} else if (component.equals("cardboard")) {
828+
appComponent = AndroidBuild.CARDBOARD;
829+
cardboardItem.setState(true);
830+
}
831+
} catch (IOException e) {
832+
System.err.println("While creating " + sketchProps + ": " + e.getMessage());
833+
}
834+
}
754835
}

0 commit comments

Comments
 (0)