Skip to content

Commit b8f26c0

Browse files
committed
reset manifest when changing component, fixes #283
1 parent 8ab90cc commit b8f26c0

File tree

4 files changed

+37
-39
lines changed

4 files changed

+37
-39
lines changed

src/processing/mode/android/AndroidBuild.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ class AndroidBuild extends JavaBuild {
110110

111111
private boolean runOnEmulator = false;
112112
private int appComponent = FRAGMENT;
113-
private boolean rewriteManifest = false;
114113

115114
private String renderer = "";
116115

@@ -226,6 +225,7 @@ public File createProject(String targetID, boolean external, boolean wear)
226225
Platform.openFolder(tmpFolder);
227226
}
228227

228+
boolean rewriteManifest = false;
229229
if (!external) {
230230
// If creating an export project, then the manifest might have attributes
231231
// that create trouble with gradle, so we just re-write it...
@@ -235,7 +235,6 @@ public File createProject(String targetID, boolean external, boolean wear)
235235
}
236236
manifest = new Manifest(sketch, appComponent, mode.getFolder(), rewriteManifest);
237237
manifest.setSdkTarget(target_sdk);
238-
rewriteManifest = false;
239238

240239
// build the preproc and get to work
241240
AndroidPreprocessor preproc = new AndroidPreprocessor(sketch, getPackageName());
@@ -529,10 +528,6 @@ public int getAppComponent() {
529528
// }
530529
// }
531530

532-
public void resetManifest() {
533-
rewriteManifest = true;
534-
}
535-
536531
protected boolean usesOpenGL() {
537532
return renderer != null && (renderer.equals("P2D") || renderer.equals("P3D"));
538533
}

src/processing/mode/android/AndroidEditor.java

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,6 @@ public class AndroidEditor extends JavaEditor {
5252
private int appComponent;
5353

5454
private Settings settings;
55-
private boolean resetManifest = false;
56-
5755
private AndroidMode androidMode;
5856

5957
private java.util.Timer updateDevicesTimer;
@@ -77,11 +75,11 @@ protected AndroidEditor(Base base, String path, EditorState state,
7775
Mode mode) throws EditorException {
7876
super(base, path, state, mode);
7977

80-
loadModeSettings();
81-
8278
androidMode = (AndroidMode) mode;
8379
androidMode.resetUserSelection();
84-
androidMode.checkSDK(this);
80+
androidMode.checkSDK(this);
81+
82+
loadModeSettings();
8583
}
8684

8785
@Override
@@ -267,46 +265,42 @@ public void actionPerformed(ActionEvent e) {
267265

268266
fragmentItem.addActionListener(new ActionListener() {
269267
@Override
270-
public void actionPerformed(ActionEvent e) {
271-
setAppComponent(AndroidBuild.FRAGMENT);
268+
public void actionPerformed(ActionEvent e) {
272269
fragmentItem.setState(true);
273270
wallpaperItem.setState(false);
274271
watchfaceItem.setSelected(false);
275272
vrItem.setSelected(false);
276-
androidMode.showSelectComponentMessage(AndroidBuild.FRAGMENT);
273+
setAppComponent(AndroidBuild.FRAGMENT);
277274
}
278275
});
279276
wallpaperItem.addActionListener(new ActionListener() {
280277
@Override
281-
public void actionPerformed(ActionEvent e) {
282-
setAppComponent(AndroidBuild.WALLPAPER);
278+
public void actionPerformed(ActionEvent e) {
283279
fragmentItem.setState(false);
284280
wallpaperItem.setState(true);
285281
watchfaceItem.setSelected(false);
286282
vrItem.setSelected(false);
287-
androidMode.showSelectComponentMessage(AndroidBuild.WALLPAPER);
283+
setAppComponent(AndroidBuild.WALLPAPER);
288284
}
289285
});
290286
watchfaceItem.addActionListener(new ActionListener() {
291287
@Override
292-
public void actionPerformed(ActionEvent e) {
293-
setAppComponent(AndroidBuild.WATCHFACE);
288+
public void actionPerformed(ActionEvent e) {
294289
fragmentItem.setState(false);
295290
wallpaperItem.setState(false);
296291
watchfaceItem.setSelected(true);
297292
vrItem.setSelected(false);
298-
androidMode.showSelectComponentMessage(AndroidBuild.WATCHFACE);
293+
setAppComponent(AndroidBuild.WATCHFACE);
299294
}
300295
});
301296
vrItem.addActionListener(new ActionListener() {
302297
@Override
303-
public void actionPerformed(ActionEvent e) {
304-
setAppComponent(AndroidBuild.VR);
298+
public void actionPerformed(ActionEvent e) {
305299
fragmentItem.setState(false);
306300
wallpaperItem.setState(false);
307301
watchfaceItem.setSelected(false);
308302
vrItem.setSelected(true);
309-
androidMode.showSelectComponentMessage(AndroidBuild.VR);
303+
setAppComponent(AndroidBuild.VR);
310304
}
311305
});
312306

@@ -471,10 +465,9 @@ public void actionPerformed(ActionEvent e) {
471465
}
472466
*/
473467

474-
private void setAppComponent(int opt) {
475-
if (appComponent != opt) {
476-
appComponent = opt;
477-
resetManifest = true;
468+
private void setAppComponent(int comp) {
469+
if (appComponent != comp) {
470+
appComponent = comp;
478471

479472
if (appComponent == AndroidBuild.FRAGMENT) {
480473
settings.set("component", "app");
@@ -485,7 +478,9 @@ private void setAppComponent(int opt) {
485478
} else if (appComponent == AndroidBuild.VR) {
486479
settings.set("component", "vr");
487480
}
488-
settings.save();
481+
settings.save();
482+
androidMode.resetManifest(sketch, appComponent);
483+
androidMode.showSelectComponentMessage(comp);
489484
}
490485
}
491486

@@ -630,9 +625,7 @@ public void run() {
630625
startIndeterminate();
631626
prepareRun();
632627
try {
633-
androidMode.handleRunEmulator(sketch, AndroidEditor.this, AndroidEditor.this,
634-
resetManifest);
635-
resetManifest = false;
628+
androidMode.handleRunEmulator(sketch, AndroidEditor.this, AndroidEditor.this);
636629
} catch (SketchException e) {
637630
statusError(e);
638631
} catch (IOException e) {
@@ -667,9 +660,7 @@ public void run() {
667660
startIndeterminate();
668661
prepareRun();
669662
try {
670-
androidMode.handleRunDevice(sketch, AndroidEditor.this, AndroidEditor.this,
671-
resetManifest);
672-
resetManifest = false;
663+
androidMode.handleRunDevice(sketch, AndroidEditor.this, AndroidEditor.this);
673664
} catch (SketchException e) {
674665
statusError(e);
675666
} catch (IOException e) {
@@ -809,6 +800,8 @@ private void loadModeSettings() {
809800
appComponent = AndroidBuild.VR;
810801
vrItem.setState(true);
811802
}
803+
804+
if (save) androidMode.initManifest(sketch, appComponent);
812805
} catch (IOException e) {
813806
System.err.println("While creating " + sketchProps + ": " + e.getMessage());
814807
}

src/processing/mode/android/AndroidMode.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,12 +265,11 @@ static public String getDateStamp(long stamp) {
265265
// }
266266
// }
267267
public void handleRunEmulator(Sketch sketch, AndroidEditor editor,
268-
RunnerListener listener, boolean resetManifest) throws SketchException, IOException {
268+
RunnerListener listener) throws SketchException, IOException {
269269
listener.startIndeterminate();
270270
listener.statusNotice("Starting build...");
271271
AndroidBuild build = new AndroidBuild(sketch, this,
272272
editor.getAppComponent(), true);
273-
if (resetManifest) build.resetManifest();
274273

275274
listener.statusNotice("Building Android project...");
276275
build.build("debug");
@@ -291,7 +290,7 @@ public void handleRunEmulator(Sketch sketch, AndroidEditor editor,
291290

292291

293292
public void handleRunDevice(Sketch sketch, AndroidEditor editor,
294-
RunnerListener listener, boolean resetManifest)
293+
RunnerListener listener)
295294
throws SketchException, IOException {
296295

297296
final Devices devices = Devices.getInstance();
@@ -310,7 +309,6 @@ public void handleRunDevice(Sketch sketch, AndroidEditor editor,
310309
listener.statusNotice("Starting build...");
311310
AndroidBuild build = new AndroidBuild(sketch, this,
312311
editor.getAppComponent(), false);
313-
if (resetManifest) build.resetManifest();
314312

315313
listener.statusNotice("Building Android project...");
316314
build.build("debug");
@@ -353,10 +351,22 @@ public void handleStop(RunnerListener listener) {
353351
}
354352
}
355353

354+
355+
public void initManifest(Sketch sketch, int comp) {
356+
new Manifest(sketch, comp, getFolder(), false);
357+
}
358+
359+
360+
public void resetManifest(Sketch sketch, int comp) {
361+
new Manifest(sketch, comp, getFolder(), true);
362+
}
363+
364+
356365
public static void createFileFromTemplate(final File tmplFile, final File destFile) {
357366
createFileFromTemplate(tmplFile, destFile, null);
358367
}
359368

369+
360370
public static void createFileFromTemplate(final File tmplFile, final File destFile,
361371
final HashMap<String, String> replaceMap) {
362372
PrintWriter pw = PApplet.createWriter(destFile);

src/processing/mode/android/Permissions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ public void actionPerformed(ActionEvent actionEvent) {
306306
setLocation((screen.width - windowSize.width) / 2,
307307
(screen.height - windowSize.height) / 2);
308308

309-
Manifest mf = new Manifest(sketch, appComp, modeFolder, false);
309+
Manifest mf = new Manifest(sketch, appComp, modeFolder, true);
310310
setSelections(mf.getPermissions());
311311

312312
// show the window and get to work

0 commit comments

Comments
 (0)