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