Skip to content

Commit fd0e481

Browse files
committed
added cardboard
1 parent 0c004e1 commit fd0e481

File tree

3 files changed

+89
-64
lines changed

3 files changed

+89
-64
lines changed

src/processing/mode/android/AndroidBuild.java

Lines changed: 58 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,32 +1007,32 @@ private void writeFragmentActivity(final File srcDirectory) {
10071007
writer.println("import processing.android.PFragment;");
10081008
writer.println("import processing.core.PApplet;");
10091009
writer.println("public class MainActivity extends Activity {");
1010-
writer.println(" private static final String MAIN_FRAGMENT_TAG = \"main_fragment\";");
1011-
writer.println(" private static final int viewId = View.generateViewId();");
1012-
writer.println(" PFragment fragment;");
1013-
writer.println(" @Override");
1014-
writer.println(" protected void onCreate(Bundle savedInstanceState) {");
1015-
writer.println(" super.onCreate(savedInstanceState);");
1016-
writer.println(" FrameLayout frame = new FrameLayout(this);");
1017-
writer.println(" frame.setId(viewId);");
1018-
writer.println(" setContentView(frame, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, "
1010+
writer.println(" private static final String MAIN_FRAGMENT_TAG = \"main_fragment\";");
1011+
writer.println(" private static final int viewId = View.generateViewId();");
1012+
writer.println(" PFragment fragment;");
1013+
writer.println(" @Override");
1014+
writer.println(" protected void onCreate(Bundle savedInstanceState) {");
1015+
writer.println(" super.onCreate(savedInstanceState);");
1016+
writer.println(" FrameLayout frame = new FrameLayout(this);");
1017+
writer.println(" frame.setId(viewId);");
1018+
writer.println(" setContentView(frame, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, "
10191019
+ "ViewGroup.LayoutParams.MATCH_PARENT));");
1020-
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1021-
writer.println(" if (savedInstanceState == null) {");
1022-
writer.println(" fragment = new PFragment();");
1023-
writer.println(" fragment.setSketch(sketch);");
1024-
writer.println(" FragmentTransaction ft = getFragmentManager().beginTransaction();");
1025-
writer.println(" ft.add(frame.getId(), fragment, MAIN_FRAGMENT_TAG).commit();");
1026-
writer.println(" } else {");
1027-
writer.println(" fragment = (PFragment) getFragmentManager().findFragmentByTag(MAIN_FRAGMENT_TAG);");
1028-
writer.println(" fragment.setSketch(sketch);");
1029-
writer.println(" }");
1030-
writer.println(" }");
1031-
writer.println(" @Override");
1032-
writer.println(" public void onBackPressed() {");
1033-
writer.println(" fragment.onBackPressed();");
1034-
writer.println(" super.onBackPressed();");
1035-
writer.println(" }");
1020+
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1021+
writer.println(" if (savedInstanceState == null) {");
1022+
writer.println(" fragment = new PFragment();");
1023+
writer.println(" fragment.setSketch(sketch);");
1024+
writer.println(" FragmentTransaction ft = getFragmentManager().beginTransaction();");
1025+
writer.println(" ft.add(frame.getId(), fragment, MAIN_FRAGMENT_TAG).commit();");
1026+
writer.println(" } else {");
1027+
writer.println(" fragment = (PFragment) getFragmentManager().findFragmentByTag(MAIN_FRAGMENT_TAG);");
1028+
writer.println(" fragment.setSketch(sketch);");
1029+
writer.println(" }");
1030+
writer.println(" }");
1031+
writer.println(" @Override");
1032+
writer.println(" public void onBackPressed() {");
1033+
writer.println(" fragment.onBackPressed();");
1034+
writer.println(" super.onBackPressed();");
1035+
writer.println(" }");
10361036
writer.println("}");
10371037
writer.flush();
10381038
writer.close();
@@ -1047,11 +1047,11 @@ private void writeWallpaperService(final File srcDirectory) {
10471047
writer.println("import processing.android.PWallpaper;");
10481048
writer.println("import processing.core.PApplet;");
10491049
writer.println("public class MainService extends PWallpaper {");
1050-
writer.println(" @Override");
1051-
writer.println(" public PApplet createSketch() {");
1052-
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1053-
writer.println(" return sketch;");
1054-
writer.println(" }");
1050+
writer.println(" @Override");
1051+
writer.println(" public PApplet createSketch() {");
1052+
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1053+
writer.println(" return sketch;");
1054+
writer.println(" }");
10551055
writer.println("}");
10561056
writer.flush();
10571057
writer.close();
@@ -1066,11 +1066,11 @@ private void writeWatchFaceGLESService(final File srcDirectory) {
10661066
writer.println("import processing.android.PWatchFaceGLES;");
10671067
writer.println("import processing.core.PApplet;");
10681068
writer.println("public class MainService extends PWatchFaceGLES {");
1069-
writer.println(" public MainService() {");
1070-
writer.println(" super();");
1071-
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1072-
writer.println(" setSketch(sketch);");
1073-
writer.println(" }");
1069+
writer.println(" public MainService() {");
1070+
writer.println(" super();");
1071+
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1072+
writer.println(" setSketch(sketch);");
1073+
writer.println(" }");
10741074
writer.println("}");
10751075
writer.flush();
10761076
writer.close();
@@ -1085,21 +1085,37 @@ private void writeWatchFaceCanvasService(final File srcDirectory) {
10851085
writer.println("import processing.android.PWatchFaceCanvas;");
10861086
writer.println("import processing.core.PApplet;");
10871087
writer.println("public class MainService extends PWatchFaceCanvas {");
1088-
writer.println(" public MainService() {");
1089-
writer.println(" super();");
1090-
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1091-
writer.println(" setSketch(sketch);");
1092-
writer.println(" }");
1088+
writer.println(" public MainService() {");
1089+
writer.println(" super();");
1090+
writer.println(" PApplet sketch = new " + sketchClassName + "();");
1091+
writer.println(" setSketch(sketch);");
1092+
writer.println(" }");
10931093
writer.println("}");
10941094
writer.flush();
10951095
writer.close();
10961096
}
10971097

10981098

10991099
private void writeCardboardActivity(final File srcDirectory) {
1100-
1100+
File mainServiceFile = new File(new File(srcDirectory, manifest.getPackageName().replace(".", "/")),
1101+
"MainActivity.java");
1102+
final PrintWriter writer = PApplet.createWriter(mainServiceFile);
1103+
writer.println("package " + manifest.getPackageName() +";");
1104+
writer.println("import android.os.Bundle;");
1105+
writer.println("import processing.cardboard.PCardboard;");
1106+
writer.println("public class MainActivity extends PCardboard {");
1107+
writer.println(" @Override");
1108+
writer.println(" public void onCreate(Bundle savedInstanceState) {");
1109+
writer.println(" super.onCreate(savedInstanceState);");
1110+
writer.println(" CardboardSketch sketch = new CardboardSketch();");
1111+
writer.println(" setSketch(sketch);");
1112+
writer.println(" init(sketch);");
1113+
writer.println(" setConvertTapIntoTrigger(true);");
1114+
writer.println(" }");
1115+
writer.println("}");
1116+
writer.flush();
1117+
writer.close();
11011118
}
1102-
11031119

11041120
private void writeResLayoutMainActivity(final File file) {
11051121
final PrintWriter writer = PApplet.createWriter(file);

src/processing/mode/android/AndroidEditor.java

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,11 @@ public void actionPerformed(ActionEvent e) {
218218
menu.add(item);
219219

220220
menu.addSeparator();
221-
222-
// final JMenu publishMenu = new JMenu("Build sketch as...");
221+
223222
final JCheckBoxMenuItem fragmentItem = new JCheckBoxMenuItem("App");
224223
final JCheckBoxMenuItem wallpaperItem = new JCheckBoxMenuItem("Wallpaper");
225224
final JCheckBoxMenuItem watchfaceItem = new JCheckBoxMenuItem("Watch Face");
226-
// final JCheckBoxMenuItem cardboardItem = new JCheckBoxMenuItem("Cardboard app");
225+
final JCheckBoxMenuItem cardboardItem = new JCheckBoxMenuItem("Cardboard");
227226

228227
fragmentItem.addActionListener(new ActionListener() {
229228
@Override
@@ -232,7 +231,7 @@ public void actionPerformed(ActionEvent e) {
232231
fragmentItem.setState(true);
233232
wallpaperItem.setState(false);
234233
watchfaceItem.setSelected(false);
235-
// cardboardItem.setSelected(false);
234+
cardboardItem.setSelected(false);
236235
}
237236
});
238237
wallpaperItem.addActionListener(new ActionListener() {
@@ -242,7 +241,7 @@ public void actionPerformed(ActionEvent e) {
242241
fragmentItem.setState(false);
243242
wallpaperItem.setState(true);
244243
watchfaceItem.setSelected(false);
245-
// cardboardItem.setSelected(false);
244+
cardboardItem.setSelected(false);
246245
}
247246
});
248247
watchfaceItem.addActionListener(new ActionListener() {
@@ -252,32 +251,29 @@ public void actionPerformed(ActionEvent e) {
252251
fragmentItem.setState(false);
253252
wallpaperItem.setState(false);
254253
watchfaceItem.setSelected(true);
255-
// cardboardItem.setSelected(false);
254+
cardboardItem.setSelected(false);
256255
}
257256
});
258-
// cardboardItem.addActionListener(new ActionListener() {
259-
// @Override
260-
// public void actionPerformed(ActionEvent e) {
261-
// AndroidBuild.setPublishOption(AndroidBuild.CARDBOARD, sketch);
262-
// fragmentItem.setState(false);
263-
// wallpaperItem.setState(false);
264-
// watchfaceItem.setSelected(false);
265-
// cardboardItem.setSelected(true);
266-
// }
267-
// });
257+
cardboardItem.addActionListener(new ActionListener() {
258+
@Override
259+
public void actionPerformed(ActionEvent e) {
260+
AndroidBuild.setPublishOption(AndroidBuild.CARDBOARD, sketch);
261+
fragmentItem.setState(false);
262+
wallpaperItem.setState(false);
263+
watchfaceItem.setSelected(false);
264+
cardboardItem.setSelected(true);
265+
}
266+
});
268267

269268
fragmentItem.setState(true);
270269
wallpaperItem.setState(false);
271270
watchfaceItem.setSelected(false);
272-
// cardboardItem.setSelected(false);
271+
cardboardItem.setSelected(false);
273272

274-
// publishMenu.add(fragmentItem);
275-
// publishMenu.add(wallpaperItem);
276-
// publishMenu.add(watchfaceItem);
277-
// publishMenu.add(cardboardItem);
278273
menu.add(fragmentItem);
279274
menu.add(wallpaperItem);
280275
menu.add(watchfaceItem);
276+
menu.add(cardboardItem);
281277

282278
menu.addSeparator();
283279

src/processing/mode/android/Manifest.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,10 @@ private void writeBlankManifest(final File file) {
181181
writer.println(" <uses-feature android:name=\"android.hardware.type.watch\" />" + newLine);
182182
writer.println(" <uses-permission android:name=\"com.google.android.permission.PROVIDE_BACKGROUND\" />" + newLine);
183183
writer.println(" <uses-permission android:name=\"android.permission.WAKE_LOCK\" />" + newLine);
184+
} else if (AndroidBuild.publishOption == AndroidBuild.CARDBOARD) {
185+
writer.println(" <uses-feature android:name=\"android.hardware.sensor.accelerometer\" android:required=\"true\" />" + newLine);
186+
writer.println(" <uses-feature android:name=\"android.hardware.sensor.gyroscope\" android:required=\"true\" />" + newLine);
187+
writer.println(" <uses-feature android:glEsVersion=\"0x00020000\" android:required=\"true\" />" + newLine);
184188
}
185189

186190
// writer.println(" <uses-sdk android:minSdkVersion=\"\" />"); // insert sdk version
@@ -239,7 +243,16 @@ private void writeBlankManifest(final File file) {
239243
writer.println(" </intent-filter> " + newLine);
240244
writer.println("</service> " + newLine);
241245
} else if (AndroidBuild.publishOption == AndroidBuild.CARDBOARD) {
242-
246+
writer.println("<activity android:name=\".MainActivity\" " + newLine);
247+
writer.println(" android:label=\"\" " + newLine); // insert pretty name
248+
writer.println(" android:screenOrientation=\"landscape\" " + newLine);
249+
writer.println(" android:configChanges=\"orientation|keyboardHidden|screenSize\" > " + newLine);
250+
writer.println(" <intent-filter>" + newLine);
251+
writer.println(" <action android:name=\"android.intent.action.MAIN\" /> " + newLine);
252+
writer.println(" <category android:name=\"android.intent.category.LAUNCHER\" /> " + newLine);
253+
writer.println(" <category android:name=\"com.google.intent.category.CARDBOARD\" /> " + newLine);
254+
writer.println(" </intent-filter>" + newLine);
255+
writer.println("</activity>" + newLine);
243256
}
244257
writer.println(" </application>" + newLine);
245258
writer.println("</manifest>" + newLine);

0 commit comments

Comments
 (0)