|
|
@@ -15,6 +15,12 @@ package org.panda3d.android;
|
|
|
|
|
|
import org.panda3d.android.PandaActivity;
|
|
|
|
|
|
+import android.content.Intent;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* Extends PandaActivity with some things that are useful in a Python
|
|
|
* application.
|
|
|
@@ -26,4 +32,39 @@ public class PythonActivity extends PandaActivity {
|
|
|
public PythonActivity() {
|
|
|
mActivity = this;
|
|
|
}
|
|
|
+
|
|
|
+ // Helper code to further support plyer.
|
|
|
+ public interface ActivityResultListener {
|
|
|
+ void onActivityResult(int requestCode, int resultCode, Intent data);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<ActivityResultListener> activityResultListeners = null;
|
|
|
+
|
|
|
+ public void registerActivityResultListener(ActivityResultListener listener) {
|
|
|
+ if (this.activityResultListeners == null) {
|
|
|
+ this.activityResultListeners = Collections.synchronizedList(new ArrayList<ActivityResultListener>());
|
|
|
+ }
|
|
|
+ this.activityResultListeners.add(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void unregisterActivityResultListener(ActivityResultListener listener) {
|
|
|
+ if (this.activityResultListeners == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.activityResultListeners.remove(listener);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
|
|
|
+ if (this.activityResultListeners == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.onResume();
|
|
|
+ synchronized (this.activityResultListeners) {
|
|
|
+ Iterator<ActivityResultListener> iterator = this.activityResultListeners.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ iterator.next().onActivityResult(requestCode, resultCode, intent);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|