Fix task list snackbar crash

pull/1136/head
Alex Baker 5 years ago
parent 59f5e7b32a
commit 9a6b369c2a

@ -262,12 +262,12 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
taskListFragment.onTaskCreated(model.uuid) taskListFragment.onTaskCreated(model.uuid)
if (!isNullOrEmpty(model.calendarURI)) { if (!isNullOrEmpty(model.calendarURI)) {
taskListFragment.makeSnackbar(R.string.calendar_event_created, model.title) taskListFragment.makeSnackbar(R.string.calendar_event_created, model.title)
.setAction(R.string.action_open) { ?.setAction(R.string.action_open) {
val uri = model.calendarURI val uri = model.calendarURI
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri)) val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri))
taskListFragment.startActivity(intent) taskListFragment.startActivity(intent)
} }
.show() ?.show()
} }
} }
} }

@ -444,16 +444,17 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
refresh() refresh()
} }
fun makeSnackbar(@StringRes res: Int, vararg args: Any?): Snackbar { fun makeSnackbar(@StringRes res: Int, vararg args: Any?): Snackbar? {
return makeSnackbar(getString(res, *args)) return makeSnackbar(getString(res, *args))
} }
private fun makeSnackbar(text: String): Snackbar { private fun makeSnackbar(text: String): Snackbar? = activity?.let {
val snackbar = Snackbar.make(coordinatorLayout, text, 8000) Snackbar.make(coordinatorLayout, text, 8000)
.setTextColor(requireActivity().getColor(R.color.snackbar_text_color)) .setTextColor(it.getColor(R.color.snackbar_text_color))
.setActionTextColor(requireActivity().getColor(R.color.snackbar_action_color)) .setActionTextColor(it.getColor(R.color.snackbar_action_color))
snackbar.view.setBackgroundColor(requireActivity().getColor(R.color.snackbar_background)) .apply {
return snackbar view.setBackgroundColor(it.getColor(R.color.snackbar_background))
}
} }
override fun onPause() { override fun onPause() {
@ -745,7 +746,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
taskDeleter.markDeleted(tasks) taskDeleter.markDeleted(tasks)
} }
result.forEach { onTaskDelete(it) } 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<Long>) = lifecycleScope.launch { private fun copySelectedItems(tasks: List<Long>) = lifecycleScope.launch {
@ -754,7 +755,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
taskDuplicator.duplicate(tasks) taskDuplicator.duplicate(tasks)
} }
onTaskCreated(duplicates) 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() fun clearCollapsed() = taskAdapter.clearCollapsed()
@ -821,7 +822,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
val dueDateString = DateUtilities.getRelativeDateTime( val dueDateString = DateUtilities.getRelativeDateTime(
context, newDueDate, locale.locale, FormatStyle.LONG, true) context, newDueDate, locale.locale, FormatStyle.LONG, true)
makeSnackbar(R.string.repeat_snackbar, task!!.title, dueDateString) makeSnackbar(R.string.repeat_snackbar, task!!.title, dueDateString)
.setAction(R.string.DLG_undo) { ?.setAction(R.string.DLG_undo) {
task.setDueDateAdjustingHideUntil(oldDueDate) task.setDueDateAdjustingHideUntil(oldDueDate)
task.completionDate = 0L task.completionDate = 0L
try { try {
@ -838,7 +839,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
taskDao.save(task) taskDao.save(task)
} }
} }
.show() ?.show()
} catch (e: Exception) { } catch (e: Exception) {
firebase.reportException(e) firebase.reportException(e)
} }

Loading…
Cancel
Save