From 4bed93f821993bf8b0f4eaaad6548270456d7580 Mon Sep 17 00:00:00 2001 From: y20k Date: Wed, 1 Apr 2020 17:26:20 +0200 Subject: [PATCH] addresses crash described in issue #70 - adds check if file manager is present --- app/src/main/java/org/y20k/trackbook/TrackFragment.kt | 11 ++++++++--- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/y20k/trackbook/TrackFragment.kt b/app/src/main/java/org/y20k/trackbook/TrackFragment.kt index 2981ace..d254a4d 100644 --- a/app/src/main/java/org/y20k/trackbook/TrackFragment.kt +++ b/app/src/main/java/org/y20k/trackbook/TrackFragment.kt @@ -37,13 +37,13 @@ import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import org.y20k.trackbook.Keys.ARG_TRACK_ID import org.y20k.trackbook.core.Track import org.y20k.trackbook.dialogs.RenameTrackDialog import org.y20k.trackbook.helpers.FileHelper import org.y20k.trackbook.helpers.LogHelper import org.y20k.trackbook.ui.TrackFragmentLayoutHolder + class TrackFragment : Fragment(), RenameTrackDialog.RenameTrackListener, YesNoDialog.YesNoDialogListener { /* Define log tag */ @@ -152,7 +152,7 @@ class TrackFragment : Fragment(), RenameTrackDialog.RenameTrackListener, YesNoDi // user tapped remove track true -> { // switch to TracklistFragment and remove track there - val trackId: Long = arguments?.getLong(ARG_TRACK_ID, -1L) ?: -1L + val trackId: Long = arguments?.getLong(Keys.ARG_TRACK_ID, -1L) ?: -1L val bundle: Bundle = bundleOf(Keys.ARG_TRACK_ID to trackId) findNavController().navigate(R.id.tracklist_fragment, bundle) } @@ -170,7 +170,12 @@ class TrackFragment : Fragment(), RenameTrackDialog.RenameTrackListener, YesNoDi putExtra(Intent.EXTRA_TITLE, FileHelper.getGpxFileName(track)) } // file gets saved in onActivityResult - startActivityForResult(intent, Keys.REQUEST_SAVE_GPX) + val packageManager: PackageManager? = activity?.packageManager + if (packageManager != null && intent.resolveActivity(packageManager) != null) { + startActivityForResult(intent, Keys.REQUEST_SAVE_GPX) + } else { + Toast.makeText(activity as Context, R.string.toast_message_install_file_helper, Toast.LENGTH_LONG).show() + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e32e2ad..6e6f4d5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -40,7 +40,7 @@ Delete this recording? Hint: The accuracy of elevation data depends on your device. The uphill and downhill elevation of the whole route is measured. - Please install a file manager or a GPX track viewer first. + Unable to save. Please install a file manager first. Saving recording as GPX. Time