@Override public boolean onContextItemSelected(final MenuItem item) { final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.menu_uninstall: startActivityForResult( new Intent(Intent.ACTION_DELETE, Uri.parse("package:" + model.getPackage(info.id))), (int) (2000 + info.id)); break; case R.id.menu_activate: model.togglePlugin(info.id); adapter.notifyDataSetChanged(); break; case R.id.menu_report: final Intent sendIntent = new Intent(Intent.ACTION_SEND); sendIntent.putExtra( Intent.EXTRA_SUBJECT, "Announcify - Problem using " + model.getName(info.id)); sendIntent.putExtra(Intent.EXTRA_TEXT, ""); sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"*****@*****.**"}); sendIntent.setType("message/rfc822"); startActivity(sendIntent); break; } return true; }
@Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode > 2000) { try { getPackageManager().getPackageGids(model.getPackage(requestCode - 2000)); } catch (final NameNotFoundException e) { model.remove(requestCode - 2000); } } }