Instead of all the activity result stuff, it seems like it might be more straightforward to just call:

startActivity(intent);
finish();