diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f82bfaab..2f6a0fcd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Change Log --- ======= +### 10.0.3 (2020-09-16) + +* Fix crash from calendar event snackbar +* Fix crash when setting Google Maps markers + ### 10.0.2 (2020-09-14) * Fix crash from corrupted custom filter diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7f0996100..1b6bb78be 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -44,8 +44,8 @@ android { defaultConfig { testApplicationId = "org.tasks.test" applicationId = "org.tasks" - versionCode = 100012 - versionName = "10.0.2" + versionCode = 100013 + versionName = "10.0.3" targetSdkVersion(Versions.targetSdk) minSdkVersion(Versions.minSdk) testInstrumentationRunner = "org.tasks.TestRunner" diff --git a/app/src/googleplay/java/org/tasks/location/GoogleMapFragment.kt b/app/src/googleplay/java/org/tasks/location/GoogleMapFragment.kt index 83ceaba0e..f096c7ed4 100644 --- a/app/src/googleplay/java/org/tasks/location/GoogleMapFragment.kt +++ b/app/src/googleplay/java/org/tasks/location/GoogleMapFragment.kt @@ -53,6 +53,9 @@ class GoogleMapFragment(private val context: Context) : MapFragment, OnMapReadyC } override fun setMarkers(places: List) { + if (map == null) { + return + } for (marker in markers) { marker.remove() } diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt index 58167df97..0a5e7b8d1 100755 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt @@ -262,12 +262,12 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener { taskListFragment.onTaskCreated(model.uuid) if (!isNullOrEmpty(model.calendarURI)) { taskListFragment.makeSnackbar(R.string.calendar_event_created, model.title) - .setAction(R.string.action_open) { + ?.setAction(R.string.action_open) { val uri = model.calendarURI val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri)) taskListFragment.startActivity(intent) } - .show() + ?.show() } } } diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index c490a2b41..38e079375 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -452,16 +452,17 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL refresh() } - fun makeSnackbar(@StringRes res: Int, vararg args: Any?): Snackbar { + fun makeSnackbar(@StringRes res: Int, vararg args: Any?): Snackbar? { return makeSnackbar(getString(res, *args)) } - private fun makeSnackbar(text: String): Snackbar { - val snackbar = Snackbar.make(coordinatorLayout, text, 8000) - .setTextColor(requireActivity().getColor(R.color.snackbar_text_color)) - .setActionTextColor(requireActivity().getColor(R.color.snackbar_action_color)) - snackbar.view.setBackgroundColor(requireActivity().getColor(R.color.snackbar_background)) - return snackbar + private fun makeSnackbar(text: String): Snackbar? = activity?.let { + Snackbar.make(coordinatorLayout, text, 8000) + .setTextColor(it.getColor(R.color.snackbar_text_color)) + .setActionTextColor(it.getColor(R.color.snackbar_action_color)) + .apply { + view.setBackgroundColor(it.getColor(R.color.snackbar_background)) + } } override fun onPause() { @@ -754,7 +755,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL taskDeleter.markDeleted(tasks) } result.forEach { onTaskDelete(it) } - makeSnackbar(R.string.delete_multiple_tasks_confirmation, result.size.toString()).show() + makeSnackbar(R.string.delete_multiple_tasks_confirmation, result.size.toString())?.show() } private fun copySelectedItems(tasks: List) = lifecycleScope.launch { @@ -763,7 +764,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL taskDuplicator.duplicate(tasks) } onTaskCreated(duplicates) - makeSnackbar(R.string.copy_multiple_tasks_confirmation, duplicates.size.toString()).show() + makeSnackbar(R.string.copy_multiple_tasks_confirmation, duplicates.size.toString())?.show() } fun clearCollapsed() = taskAdapter.clearCollapsed() @@ -830,7 +831,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL val dueDateString = DateUtilities.getRelativeDateTime( context, newDueDate, locale.locale, FormatStyle.LONG, true) makeSnackbar(R.string.repeat_snackbar, task!!.title, dueDateString) - .setAction(R.string.DLG_undo) { + ?.setAction(R.string.DLG_undo) { task.setDueDateAdjustingHideUntil(oldDueDate) task.completionDate = 0L try { @@ -847,7 +848,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL taskDao.save(task) } } - .show() + ?.show() } catch (e: Exception) { firebase.reportException(e) } diff --git a/fastlane/metadata/android/en-US/changelogs/100013.txt b/fastlane/metadata/android/en-US/changelogs/100013.txt new file mode 100644 index 000000000..344afc822 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/100013.txt @@ -0,0 +1,2 @@ +* Fix crash from calendar event snackbar +* Fix crash when setting Google Maps markers