Reset provider when disabling through the dialog

This commit is contained in:
Maksim Karasev 2024-10-03 17:10:23 +03:00
parent 6a5f405211
commit 681e6ceef4

View file

@ -27,7 +27,7 @@ class DNSServerDialogFragment : DialogFragment() {
private lateinit var adapter: ServerListRecyclerAdapter private lateinit var adapter: ServerListRecyclerAdapter
private var servers: MutableList<DnsServer> = mutableListOf() private var servers: MutableList<DnsServer> = mutableListOf()
private val dnsServerViewModel: DnsServerViewModel by viewModels { DnsServerViewModelFactory((requireActivity().application as PrivateDNSApp).repository) } private val dnsServerViewModel: DnsServerViewModel by viewModels { DnsServerViewModelFactory((requireActivity().application as PrivateDNSApp).repository) }
private val contentResolver by lazy { requireActivity().contentResolver }
override fun onCreateDialog( override fun onCreateDialog(
savedInstanceState: Bundle? savedInstanceState: Bundle?
@ -73,17 +73,23 @@ class DNSServerDialogFragment : DialogFragment() {
when (id) { when (id) {
OFF_ID -> { OFF_ID -> {
PrivateDNSUtils.setPrivateMode( PrivateDNSUtils.setPrivateMode(
requireActivity().contentResolver, contentResolver,
PrivateDNSUtils.DNS_MODE_OFF PrivateDNSUtils.DNS_MODE_OFF
) )
PrivateDNSUtils.setPrivateProvider(
contentResolver,
null)
Toast.makeText(context, R.string.set_to_off_toast, Toast.LENGTH_SHORT).show() Toast.makeText(context, R.string.set_to_off_toast, Toast.LENGTH_SHORT).show()
} }
AUTO_ID -> { AUTO_ID -> {
PrivateDNSUtils.setPrivateMode( PrivateDNSUtils.setPrivateMode(
requireActivity().contentResolver, contentResolver,
PrivateDNSUtils.DNS_MODE_AUTO PrivateDNSUtils.DNS_MODE_AUTO
) )
PrivateDNSUtils.setPrivateProvider(
contentResolver,
null)
Toast.makeText(context, R.string.set_to_auto_toast, Toast.LENGTH_SHORT).show() Toast.makeText(context, R.string.set_to_auto_toast, Toast.LENGTH_SHORT).show()
} }
@ -91,11 +97,11 @@ class DNSServerDialogFragment : DialogFragment() {
lifecycleScope.launch { lifecycleScope.launch {
val server = servers.find { server -> server.id == id } val server = servers.find { server -> server.id == id }
PrivateDNSUtils.setPrivateMode( PrivateDNSUtils.setPrivateMode(
requireActivity().contentResolver, contentResolver,
PrivateDNSUtils.DNS_MODE_PRIVATE PrivateDNSUtils.DNS_MODE_PRIVATE
) )
PrivateDNSUtils.setPrivateProvider( PrivateDNSUtils.setPrivateProvider(
requireActivity().contentResolver, contentResolver,
server?.server server?.server
) )
Toast.makeText( Toast.makeText(