read only if some data exists to prevent infinite loop
external data accessibility check
set up spinner
set up path private member
visibility
actually saving some data to external storage + toast
mediascan + toast