I have this blocks of codes from the a class, which is extended by ActivityX. I have two startActivityForResult need to be fixed and I dont know how to implement the new API.
This is the 1st startActivityForResult.
private void launchIntentToAddPackToSpecificPackage(String identifier, String stickerPackName, String whatsappPackageName) {
Intent intent = createIntentToAddStickerPack(identifier, stickerPackName);
intent.setPackage(whatsappPackageName);
try {
startActivityForResult(intent, ADD_PACK);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.add_pack_fail_prompt_update_whatsapp, Toast.LENGTH_LONG).show();
}
}
This is the 2nd startActivityForResult.
//Handle cases either of WhatsApp are set as default app to handle this intent. We still want users to see both options.
private void launchIntentToAddPackToChooser(String identifier, String stickerPackName) {
Intent intent = createIntentToAddStickerPack(identifier, stickerPackName);
try {
startActivityForResult(Intent.createChooser(intent, getString(R.string.add_to_whatsapp)), ADD_PACK);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.add_pack_fail_prompt_update_whatsapp, Toast.LENGTH_LONG).show();
}
}
This is the OnActivityResult.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == ADD_PACK) {
if (resultCode == Activity.RESULT_CANCELED) {
if (data != null) {
final String validationError = data.getStringExtra("validation_error");
if (validationError != null) {
if (BuildConfig.DEBUG) {
//validation error should be shown to developer only, not users.
MessageDialogFragment.newInstance(R.string.title_validation_error, validationError).show(getSupportFragmentManager(), "validation error");
}
Log.e(TAG, "Validation failed:" + validationError);
}
} else {
new StickerPackNotAddedMessageFragment().show(getSupportFragmentManager(), "sticker_pack_not_added");
}
}
}
}