diff --git a/skunkworks_crow/src/main/java/org/odk/share/views/ui/main/MainActivity.java b/skunkworks_crow/src/main/java/org/odk/share/views/ui/main/MainActivity.java index 20175c5b..55e3d3f7 100644 --- a/skunkworks_crow/src/main/java/org/odk/share/views/ui/main/MainActivity.java +++ b/skunkworks_crow/src/main/java/org/odk/share/views/ui/main/MainActivity.java @@ -60,6 +60,7 @@ public class MainActivity extends FormListActivity implements LoaderManager.Load private static final String FORM_CHOOSER_LIST_SORTING_ORDER = "formChooserListSortingOrder"; private static final String COLLECT_PACKAGE = "org.odk.collect.android"; private static final int STORAGE_PERMISSION_REQUEST_CODE = 101; + private static final int COLLECT_INSTALL_REQUEST_CODE = 102; private static final int FORM_LOADER = 2; @BindView(R.id.toolbar) @@ -213,9 +214,12 @@ private void showAlertDialog() { builder.setPositiveButton(getString(R.string.install), (DialogInterface dialog, int which) -> { try { - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + COLLECT_PACKAGE))); + startActivityForResult(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + COLLECT_PACKAGE)), + COLLECT_INSTALL_REQUEST_CODE); } catch (ActivityNotFoundException e) { - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + COLLECT_PACKAGE))); + startActivityForResult(new Intent(Intent.ACTION_VIEW, + Uri.parse("https://play.google.com/store/apps/details?id=" + COLLECT_PACKAGE)), + COLLECT_INSTALL_REQUEST_CODE); } }); @@ -277,6 +281,11 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten setUpLoader(); } } + if (requestCode == COLLECT_INSTALL_REQUEST_CODE) { + if (!isCollectInstalled()) { + setUpLoader(); + } + } } private void setUpLoader() {