Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit a134b6f

Browse files
committed
[[ Bug 22950 ]] Implement OnActivityResultListener
This patch implements an `OnActivityResultListener` interface so it is possible to handle `onActivityResult` for a particular result code. This implementation should be icnsidered temporary until bug 19920 (EngineAPI class) is implemented at which point `OnActivityResultListener` would likely become an interface of `EngineAPI` rather than `LiveCodeActivity`.
1 parent ca1f8c9 commit a134b6f

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

engine/src/java/com/runrev/android/LiveCodeActivity.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import android.util.*;
2626
import android.content.pm.PackageManager;
2727
import android.graphics.*;
28+
import java.util.*;
2829

2930
// This is the main activity exported by the application. This is
3031
// split into two parts, a customizable sub-class that gets dynamically
@@ -37,6 +38,8 @@ public class LiveCodeActivity extends Activity
3738
public static FrameLayout s_main_layout;
3839
public static Engine s_main_view;
3940

41+
private HashMap<Integer, OnActivityResultListener> m_activity_result_listeners;
42+
4043
//////////
4144

4245
public LiveCodeActivity()
@@ -86,6 +89,9 @@ public void onGlobalLayout()
8689
s_main_view.updateKeyboardVisible();
8790
}
8891
});
92+
93+
m_activity_result_listeners = new HashMap<Integer, OnActivityResultListener>();
94+
8995
}
9096

9197
@Override
@@ -203,11 +209,38 @@ else if (keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 0)
203209

204210
////////////////////////////////////////////////////////////////////////////////
205211

212+
public interface OnActivityResultListener
213+
{
214+
public void onActivityResult (int p_request_code, int p_result_code, Intent p_data);
215+
}
216+
217+
public void setOnActivityResultListener(OnActivityResultListener p_listener, int p_request_code)
218+
{
219+
Integer t_request_code = Integer.valueOf(p_request_code);
220+
m_activity_result_listeners.put(t_request_code, p_listener);
221+
}
222+
223+
public void removeOnActivityResultListener(int p_request_code)
224+
{
225+
Integer t_request_code = Integer.valueOf(p_request_code);
226+
m_activity_result_listeners.remove(t_request_code);
227+
}
228+
206229
//
207230
@Override
208231
protected void onActivityResult (int requestCode, int resultCode, Intent data)
209232
{
210-
s_main_view.onActivityResult(requestCode, resultCode, data);
233+
// activity resuult listeners override any engine request code handlers
234+
Integer t_request_code = Integer.valueOf(requestCode);
235+
OnActivityResultListener t_listener = m_activity_result_listeners.get(t_request_code);
236+
if (t_listener != null)
237+
{
238+
t_listener.onActivityResult(requestCode, resultCode, data);
239+
}
240+
else
241+
{
242+
s_main_view.onActivityResult(requestCode, resultCode, data);
243+
}
211244
}
212245

213246
// Callback sent when the app requests permissions on runtime (Android API 23+)

0 commit comments

Comments
 (0)