From 9358dfaca591e1b6db8ce2791051cd109ec59bf8 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 14 Jan 2021 09:54:44 -0600 Subject: [PATCH] Add ResourcesExtensions --- .../org/tasks/extensions/ResourcesExtensions.kt | 16 ++++++++++++++++ .../main/java/org/tasks/sync/AddAccountDialog.kt | 12 +++++------- 2 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/org/tasks/extensions/ResourcesExtensions.kt diff --git a/app/src/main/java/org/tasks/extensions/ResourcesExtensions.kt b/app/src/main/java/org/tasks/extensions/ResourcesExtensions.kt new file mode 100644 index 000000000..b378a6577 --- /dev/null +++ b/app/src/main/java/org/tasks/extensions/ResourcesExtensions.kt @@ -0,0 +1,16 @@ +package org.tasks.extensions + +import android.content.res.Resources + +fun Resources.getMutableStringList(id: Int): MutableList = + getStringArray(id).toMutableList() + +fun Resources.getMutableIntList(id: Int): MutableList { + val typedArray = obtainTypedArray(id) + val result = IntArray(typedArray.length()) + for (i in result.indices) { + result[i] = typedArray.getResourceId(i, 0) + } + typedArray.recycle() + return result.toMutableList() +} \ No newline at end of file diff --git a/app/src/main/java/org/tasks/sync/AddAccountDialog.kt b/app/src/main/java/org/tasks/sync/AddAccountDialog.kt index 6c3b13e50..f47c3e8b4 100644 --- a/app/src/main/java/org/tasks/sync/AddAccountDialog.kt +++ b/app/src/main/java/org/tasks/sync/AddAccountDialog.kt @@ -18,6 +18,8 @@ import org.tasks.R import org.tasks.caldav.CaldavAccountSettingsActivity import org.tasks.dialogs.DialogBuilder import org.tasks.etebase.EtebaseAccountSettingsActivity +import org.tasks.extensions.getMutableIntList +import org.tasks.extensions.getMutableStringList import org.tasks.preferences.fragments.Synchronization.Companion.REQUEST_CALDAV_SETTINGS import org.tasks.preferences.fragments.Synchronization.Companion.REQUEST_GOOGLE_TASKS import org.tasks.themes.DrawableUtil @@ -29,14 +31,10 @@ class AddAccountDialog : DialogFragment() { @Inject lateinit var dialogBuilder: DialogBuilder override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - val services = requireActivity().resources.getStringArray(R.array.synchronization_services) - val descriptions = requireActivity().resources.getStringArray(R.array.synchronization_services_description) - val typedArray = requireActivity().resources.obtainTypedArray(R.array.synchronization_services_icons) - val icons = IntArray(typedArray.length()) - for (i in icons.indices) { - icons[i] = typedArray.getResourceId(i, 0) + val services = resources.getMutableStringList(R.array.synchronization_services) + val descriptions = resources.getMutableStringList(R.array.synchronization_services_description) + val icons = resources.getMutableIntList(R.array.synchronization_services_icons) } - typedArray.recycle() val adapter: ArrayAdapter = object : ArrayAdapter( requireActivity(), R.layout.simple_list_item_2_themed, R.id.text1, services) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {