|
|
@ -9,12 +9,13 @@ import android.view.LayoutInflater
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import androidx.fragment.app.Fragment
|
|
|
|
import androidx.fragment.app.Fragment
|
|
|
|
|
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
|
import androidx.navigation.Navigation
|
|
|
|
import androidx.navigation.Navigation
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
|
import kotlinx.android.synthetic.main.fragment_add_ons_management.*
|
|
|
|
import kotlinx.android.synthetic.main.fragment_add_ons_management.*
|
|
|
|
import kotlinx.android.synthetic.main.fragment_add_ons_management.view.*
|
|
|
|
import kotlinx.android.synthetic.main.fragment_add_ons_management.view.*
|
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
|
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
|
|
|
|
import kotlinx.coroutines.Dispatchers.IO
|
|
|
|
import kotlinx.coroutines.launch
|
|
|
|
import kotlinx.coroutines.launch
|
|
|
|
import mozilla.components.feature.addons.Addon
|
|
|
|
import mozilla.components.feature.addons.Addon
|
|
|
|
import mozilla.components.feature.addons.AddonManagerException
|
|
|
|
import mozilla.components.feature.addons.AddonManagerException
|
|
|
@ -31,7 +32,6 @@ import org.mozilla.fenix.ext.showToolbar
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Suppress("TooManyFunctions")
|
|
|
|
@Suppress("TooManyFunctions")
|
|
|
|
class AddonsManagementFragment : Fragment(), AddonsManagerAdapterDelegate {
|
|
|
|
class AddonsManagementFragment : Fragment(), AddonsManagerAdapterDelegate {
|
|
|
|
private val scope = CoroutineScope(Dispatchers.IO)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateView(
|
|
|
|
override fun onCreateView(
|
|
|
|
inflater: LayoutInflater,
|
|
|
|
inflater: LayoutInflater,
|
|
|
@ -77,11 +77,11 @@ class AddonsManagementFragment : Fragment(), AddonsManagerAdapterDelegate {
|
|
|
|
private fun bindRecyclerView(view: View) {
|
|
|
|
private fun bindRecyclerView(view: View) {
|
|
|
|
val recyclerView = view.add_ons_list
|
|
|
|
val recyclerView = view.add_ons_list
|
|
|
|
recyclerView.layoutManager = LinearLayoutManager(requireContext())
|
|
|
|
recyclerView.layoutManager = LinearLayoutManager(requireContext())
|
|
|
|
scope.launch {
|
|
|
|
lifecycleScope.launch(IO) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
val addons = requireContext().components.addonManager.getAddons()
|
|
|
|
val addons = requireContext().components.addonManager.getAddons()
|
|
|
|
|
|
|
|
|
|
|
|
scope.launch(Dispatchers.Main) {
|
|
|
|
lifecycleScope.launch(Dispatchers.Main) {
|
|
|
|
val adapter = AddonsManagerAdapter(
|
|
|
|
val adapter = AddonsManagerAdapter(
|
|
|
|
requireContext().components.addonCollectionProvider,
|
|
|
|
requireContext().components.addonCollectionProvider,
|
|
|
|
this@AddonsManagementFragment,
|
|
|
|
this@AddonsManagementFragment,
|
|
|
@ -90,7 +90,7 @@ class AddonsManagementFragment : Fragment(), AddonsManagerAdapterDelegate {
|
|
|
|
recyclerView.adapter = adapter
|
|
|
|
recyclerView.adapter = adapter
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (e: AddonManagerException) {
|
|
|
|
} catch (e: AddonManagerException) {
|
|
|
|
scope.launch(Dispatchers.Main) {
|
|
|
|
lifecycleScope.launch(Dispatchers.Main) {
|
|
|
|
showSnackBar(view, getString(R.string.mozac_feature_addons_failed_to_query_add_ons))
|
|
|
|
showSnackBar(view, getString(R.string.mozac_feature_addons_failed_to_query_add_ons))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -153,15 +153,14 @@ class AddonsManagementFragment : Fragment(), AddonsManagerAdapterDelegate {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
bindRecyclerView(view)
|
|
|
|
bindRecyclerView(view)
|
|
|
|
|
|
|
|
addonProgressOverlay?.visibility = View.GONE
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
addonProgressOverlay?.visibility = View.GONE
|
|
|
|
|
|
|
|
},
|
|
|
|
},
|
|
|
|
onError = { _, _ ->
|
|
|
|
onError = { _, _ ->
|
|
|
|
this@AddonsManagementFragment.view?.let { view ->
|
|
|
|
this@AddonsManagementFragment.view?.let { view ->
|
|
|
|
showSnackBar(view, getString(R.string.mozac_feature_addons_failed_to_install, addon.translatedName))
|
|
|
|
showSnackBar(view, getString(R.string.mozac_feature_addons_failed_to_install, addon.translatedName))
|
|
|
|
|
|
|
|
addonProgressOverlay?.visibility = View.GONE
|
|
|
|
}
|
|
|
|
}
|
|
|
|
addonProgressOverlay?.visibility = View.GONE
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|