Here we usually deal with startActivityForResult in square register.
public SomePresenter extends Presenter<SomePresenter.Activity> { public interface Activity { void startActivityForResult(android.content.Intent intent, int requestCode); } public final void onActivityResult(int requestCode, int resultCode, Intent data) {
And the action looks something like this:
public MyActivity extends Activity implements SomePresenter.Activity { @Override protected void onCreate(Bundle bundle) { // Do the usual mortar init stuff somePresenter.takeView(this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); somePresenter.onActivityResult(requestCode, resultCode, data); } @Override protected void onDestroy() { somePresenter.dropView(this); super.onDestroy(); } }
It does not help you with the error dialog, but it sounds like a separate concern for me. It looks like you can use a pair of Popup / PopupPresenter. (I'm not happy with Popup, but it does its job until we have a better idea.) Or maybe the activity should just go ahead and do it? I am not very good at the Services, I have not dealt with them yet.
rjrjr source share