On Android 13 or newer there is an operating system integrated message
bubble that pops up and shows you any automated clipboard changes at the
bottom left of the screen. This bubble obscures the message text of the
snackbar so I've moved it to the top of the screen when on Android.
It might make sense to do more accurate version checking in the future
to only show the snackbar if on Android < 13 or iOS but we'd need to pull in the
device_info_plus package or similar for that.
Generally the use of GestureDetector is discouraged in favor of InkWell
unless you have a very specific reason to use it. InkWells automatically
generate ripple effects if there is a parent material widget in the tree
to indicate to a user that a given widget is interactible.
When using the BuildContext after an asynchronus gap (like when using
await), you always need to check if the context is still mounted before
using it to retrieve objects from the widget tree like with
`ScaffoldMessenger.of(context)`.
Additionally you don't need to use
`.then((value) {})` on a future, if that future is already awaited, you
can simply put any following statements on a new line for better
readability of program flow.