don't use deprecated startActivityForResult() use registerForActivityResult() instead

This commit is contained in:
Jannik 2021-05-27 19:50:00 +02:00
parent 7ce67f57cd
commit a3a89c6b64
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
3 changed files with 31 additions and 34 deletions

View File

@ -9,6 +9,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
@ -31,8 +32,27 @@ class AccountFragment : Fragment() {
private lateinit var binding: FragmentAccountBinding private lateinit var binding: FragmentAccountBinding
private val exportFileCode = 1111 private val getUriExport = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
private val importFileCode = 1122 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 { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
binding = FragmentAccountBinding.inflate(inflater, container, false) binding = FragmentAccountBinding.inflate(inflater, container, false)
@ -66,30 +86,6 @@ class AccountFragment : Fragment() {
initActions() 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() { private fun initActions() {
binding.linearAccountLogin.setOnClickListener { binding.linearAccountLogin.setOnClickListener {
showLoginDialog(true) showLoginDialog(true)
@ -121,7 +117,7 @@ class AccountFragment : Fragment() {
type = "text/json" type = "text/json"
putExtra(Intent.EXTRA_TITLE, "my-list.json") putExtra(Intent.EXTRA_TITLE, "my-list.json")
} }
startActivityForResult(i, exportFileCode) getUriExport.launch(i)
} }
binding.linearImportData.setOnClickListener { binding.linearImportData.setOnClickListener {
@ -129,7 +125,7 @@ class AccountFragment : Fragment() {
addCategory(Intent.CATEGORY_OPENABLE) addCategory(Intent.CATEGORY_OPENABLE)
type = "*/*" type = "*/*"
} }
startActivityForResult(i, importFileCode) getUriImport.launch(i)
} }
} }
@ -166,4 +162,5 @@ class AccountFragment : Fragment() {
} }
} }
} }
} }

View File

@ -48,10 +48,10 @@
<string name="theme_dark">Dunkel</string> <string name="theme_dark">Dunkel</string>
<string name="dev_settings">Entwickler Einstellungen</string> <string name="dev_settings">Entwickler Einstellungen</string>
<string name="export_data">Daten exportieren</string> <string name="export_data">Daten exportieren</string>
<string name="export_data_desc">Speichere "meine Liste" in eine Datei</string> <string name="export_data_desc">Speichere "Meine Liste" in eine Datei</string>
<string name="import_data">Daten importieren</string> <string name="import_data">Daten importieren</string>
<string name="import_data_desc">Lade "meine Liste" aus einer Datei</string> <string name="import_data_desc">Lade "Meine Liste" aus einer Datei</string>
<string name="import_data_success">"meine Liste" erfolgreich importiert</string> <string name="import_data_success">"Meine Liste" erfolgreich importiert</string>
<!-- about fragment --> <!-- about fragment -->
<string name="version">Version</string> <string name="version">Version</string>

View File

@ -59,10 +59,10 @@
<string name="theme_dark">Dark</string> <string name="theme_dark">Dark</string>
<string name="dev_settings">Developer Settings</string> <string name="dev_settings">Developer Settings</string>
<string name="export_data">export data</string> <string name="export_data">export data</string>
<string name="export_data_desc">export "my list" to a file</string> <string name="export_data_desc">export "My list" to a file</string>
<string name="import_data">import data</string> <string name="import_data">import data</string>
<string name="import_data_desc">import "my list" from a file</string> <string name="import_data_desc">import "My list" from a file</string>
<string name="import_data_success">imported "my list" successfully</string> <string name="import_data_success">imported "My list" successfully</string>
<!-- about fragment --> <!-- about fragment -->