27
27
import processing .app .Mode ;
28
28
import processing .app .Platform ;
29
29
import processing .app .Preferences ;
30
+ import processing .app .Settings ;
30
31
import processing .app .SketchException ;
31
32
import processing .app .ui .EditorException ;
32
33
import processing .app .ui .EditorState ;
49
50
50
51
@ SuppressWarnings ("serial" )
51
52
public class AndroidEditor extends JavaEditor {
52
- private int appComponent = AndroidBuild .FRAGMENT ;
53
+ private int appComponent ;
54
+
55
+ private Settings settings ;
53
56
private boolean resetManifest = false ;
54
57
55
58
private AndroidMode androidMode ;
56
59
57
60
private java .util .Timer updateDevicesTimer ;
58
61
62
+ private JCheckBoxMenuItem fragmentItem ;
63
+ private JCheckBoxMenuItem wallpaperItem ;
64
+ private JCheckBoxMenuItem watchfaceItem ;
65
+ private JCheckBoxMenuItem cardboardItem ;
66
+
59
67
protected AndroidEditor (Base base , String path , EditorState state ,
60
68
Mode mode ) throws EditorException {
61
69
super (base , path , state , mode );
70
+
71
+ loadModeSettings ();
72
+
62
73
androidMode = (AndroidMode ) mode ;
63
74
androidMode .resetUserSelection ();
64
- androidMode .checkSDK (this );
75
+ androidMode .checkSDK (this );
65
76
}
66
77
67
78
@ Override
@@ -240,10 +251,10 @@ public void actionPerformed(ActionEvent e) {
240
251
241
252
menu .addSeparator ();
242
253
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" );
247
258
248
259
fragmentItem .addActionListener (new ActionListener () {
249
260
@ Override
@@ -289,11 +300,11 @@ public void actionPerformed(ActionEvent e) {
289
300
androidMode .showSelectComponentMessage (AndroidBuild .CARDBOARD );
290
301
}
291
302
});
292
-
293
- fragmentItem .setState (true );
303
+
304
+ fragmentItem .setState (false );
294
305
wallpaperItem .setState (false );
295
306
watchfaceItem .setSelected (false );
296
- cardboardItem .setSelected (false );
307
+ cardboardItem .setSelected (false );
297
308
298
309
menu .add (fragmentItem );
299
310
menu .add (wallpaperItem );
@@ -455,6 +466,17 @@ private void setAppComponent(int opt) {
455
466
if (appComponent != opt ) {
456
467
appComponent = opt ;
457
468
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 ();
458
480
}
459
481
}
460
482
@@ -751,4 +773,63 @@ public void run() {
751
773
public int getAppComponent () {
752
774
return appComponent ;
753
775
}
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
+ }
754
835
}
0 commit comments