diff --git a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt index 87dc432..eb8000f 100644 --- a/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt +++ b/app/src/main/java/org/mosad/teapod/ui/activity/main/fragments/AccountFragment.kt @@ -9,6 +9,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.view.isVisible import androidx.fragment.app.Fragment import com.afollestad.materialdialogs.MaterialDialog @@ -31,8 +32,27 @@ class AccountFragment : Fragment() { private lateinit var binding: FragmentAccountBinding - private val exportFileCode = 1111 - private val importFileCode = 1122 + private val getUriExport = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == Activity.RESULT_OK) { + result.data?.data?.also { uri -> + StorageController.exportMyList(requireContext(), uri) + } + } + } + + private val getUriImport = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == Activity.RESULT_OK) { + result.data?.data?.also { uri -> + val success = StorageController.importMyList(requireContext(), uri) + if (success == 0) { + Toast.makeText( + context, getString(R.string.import_data_success), + Toast.LENGTH_SHORT + ).show() + } + } + } + } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { binding = FragmentAccountBinding.inflate(inflater, container, false) @@ -66,30 +86,6 @@ class AccountFragment : Fragment() { initActions() } - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - // return if the result was not ok - if (resultCode != Activity.RESULT_OK) { - Log.e(javaClass.name, "Error while computing result. Result code is: $resultCode") - return - } - - when(requestCode) { - exportFileCode -> data?.data?.also { uri -> - StorageController.exportMyList(requireContext(), uri) - } - - importFileCode -> data?.data?.also { uri -> - val success = StorageController.importMyList(requireContext(), uri) - if (success == 0) { - Toast.makeText( - context, getString(R.string.import_data_success), - Toast.LENGTH_SHORT - ).show() - } - } - } - } - private fun initActions() { binding.linearAccountLogin.setOnClickListener { showLoginDialog(true) @@ -121,7 +117,7 @@ class AccountFragment : Fragment() { type = "text/json" putExtra(Intent.EXTRA_TITLE, "my-list.json") } - startActivityForResult(i, exportFileCode) + getUriExport.launch(i) } binding.linearImportData.setOnClickListener { @@ -129,7 +125,7 @@ class AccountFragment : Fragment() { addCategory(Intent.CATEGORY_OPENABLE) type = "*/*" } - startActivityForResult(i, importFileCode) + getUriImport.launch(i) } } @@ -166,4 +162,5 @@ class AccountFragment : Fragment() { } } } + } \ No newline at end of file diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index b2adda2..7525379 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -48,10 +48,10 @@ Dunkel Entwickler Einstellungen Daten exportieren - Speichere "meine Liste" in eine Datei + Speichere "Meine Liste" in eine Datei Daten importieren - Lade "meine Liste" aus einer Datei - "meine Liste" erfolgreich importiert + Lade "Meine Liste" aus einer Datei + "Meine Liste" erfolgreich importiert Version diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8c7fbed..874ede9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -59,10 +59,10 @@ Dark Developer Settings export data - export "my list" to a file + export "My list" to a file import data - import "my list" from a file - imported "my list" successfully + import "My list" from a file + imported "My list" successfully