Skip to content

Commit 0f54669

Browse files
committed
handle back pressed event
1 parent 4c805e8 commit 0f54669

File tree

6 files changed

+58
-2
lines changed

6 files changed

+58
-2
lines changed

core/src/processing/android/ActivityAPI.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,7 @@ public interface ActivityAPI {
5252
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo);
5353
public boolean onContextItemSelected(MenuItem item);
5454
public void setHasOptionsMenu(boolean hasMenu);
55+
56+
// IO events
57+
public void onBackPressed();
5558
}

core/src/processing/core/PApplet.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,11 @@ public class PApplet extends Object implements ActivityAPI, PConstants {
260260
*/
261261
boolean keyboardIsOpen = false;
262262

263+
/**
264+
* Flag to determine if the user handled the back press.
265+
*/
266+
public boolean handledBackPressed = true;
267+
263268
///////////////////////////////////////////////////////////////
264269
// Permission handling
265270

@@ -555,6 +560,10 @@ public void onResume() {
555560
resume();
556561
}
557562

563+
// Set the default to true to handle the situation where a fragment is popping back
564+
// after pressing back (app does not exit)
565+
handledBackPressed = true;
566+
558567
surface.resumeThread();
559568
}
560569

@@ -631,6 +640,10 @@ public void setHasOptionsMenu(boolean hasMenu) {
631640
}
632641

633642

643+
public void onBackPressed() {
644+
handledBackPressed = false;
645+
}
646+
634647
public void startActivity(Intent intent) {
635648
surface.startActivity(intent);
636649
}

mode/templates/AppActivity.java.tmpl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,13 @@ public class MainActivity extends AppCompatActivity {
4242
sketch.onNewIntent(intent);
4343
}
4444
}
45+
46+
@Override
47+
public void onBackPressed() {
48+
if (sketch != null) {
49+
sketch.onBackPressed();
50+
if (sketch.handledBackPressed) return;
51+
}
52+
super.onBackPressed();
53+
}
4554
}

mode/templates/VRActivity.java.tmpl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,22 @@ import processing.vr.PVR;
66
import processing.core.PApplet;
77

88
public class MainActivity extends PVR {
9+
private PApplet sketch;
10+
911
@Override
1012
public void onCreate(Bundle savedInstanceState) {
1113
super.onCreate(savedInstanceState);
12-
PApplet sketch = new @@sketch_class_name@@();
14+
sketch = new @@sketch_class_name@@();
1315
@@external@@
1416
setSketch(sketch);
1517
}
18+
19+
@Override
20+
public void onBackPressed() {
21+
if (sketch != null) {
22+
sketch.onBackPressed();
23+
if (sketch.handledBackPressed) return;
24+
}
25+
super.onBackPressed();
26+
}
1627
}

studio/apps/simple/src/main/java/simple/MainActivity.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,13 @@ public void onNewIntent(Intent intent) {
4040
sketch.onNewIntent(intent);
4141
}
4242
}
43+
44+
@Override
45+
public void onBackPressed() {
46+
if (sketch != null) {
47+
sketch.onBackPressed();
48+
if (sketch.handledBackPressed) return;
49+
}
50+
super.onBackPressed();
51+
}
4352
}

studio/apps/vrcube/src/main/java/vrcube/MainActivity.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,22 @@
66
import processing.core.PApplet;
77

88
public class MainActivity extends PVR {
9+
private PApplet sketch;
10+
911
@Override
1012
public void onCreate(Bundle savedInstanceState) {
1113
super.onCreate(savedInstanceState);
12-
PApplet sketch = new Sketch();
14+
sketch = new Sketch();
1315
sketch.setExternal(true);
1416
setSketch(sketch);
1517
}
18+
19+
@Override
20+
public void onBackPressed() {
21+
if (sketch != null) {
22+
sketch.onBackPressed();
23+
if (sketch.handledBackPressed) return;
24+
}
25+
super.onBackPressed();
26+
}
1627
}

0 commit comments

Comments
 (0)