Updated DNS.

This commit is contained in:
Revertron 2024-08-06 18:05:46 +02:00
parent 6a66960666
commit c7d13339be
4 changed files with 33 additions and 8 deletions

View file

@ -13,6 +13,7 @@ import androidx.preference.PreferenceManager
import com.google.android.material.textfield.TextInputEditText
const val KEY_DNS_SERVERS = "dns_servers"
const val KEY_DNS_VERSION = "dns_version"
const val KEY_ENABLE_CHROME_FIX = "enable_chrome_fix"
class DnsActivity : AppCompatActivity() {
@ -41,10 +42,10 @@ class DnsActivity : AppCompatActivity() {
val descriptionRevertron = getString(R.string.dns_server_info_revertron)
// Here we can add some other DNS servers in a future
defaultDnsServers = hashMapOf(
"302:7991::53" to Pair(getString(R.string.location_amsterdam), descriptionRevertron),
"302:db60::53" to Pair(getString(R.string.location_prague), descriptionRevertron),
"300:6223::53" to Pair(getString(R.string.location_bratislava), descriptionRevertron),
"301:1088::53" to Pair(getString(R.string.location_buffalo), descriptionRevertron),
"308:62:45:62::" to Pair(getString(R.string.location_amsterdam), descriptionRevertron),
"308:84:68:55::" to Pair(getString(R.string.location_frankfurt), descriptionRevertron),
"308:25:40:bd::" to Pair(getString(R.string.location_bratislava), descriptionRevertron),
"308:c8:48:45::" to Pair(getString(R.string.location_buffalo), descriptionRevertron),
)
serversTableLayout = findViewById(R.id.configuredDnsTableLayout)

View file

@ -8,6 +8,7 @@ import android.os.Build
import android.service.quicksettings.TileService
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationCompat
import androidx.preference.PreferenceManager
const val PREF_KEY_ENABLED = "enabled"
const val MAIN_CHANNEL_ID = "Yggdrasil Service"
@ -15,7 +16,7 @@ const val MAIN_CHANNEL_ID = "Yggdrasil Service"
class GlobalApplication: Application(), YggStateReceiver.StateReceiver {
private lateinit var config: ConfigurationProxy
private var currentState: State = State.Disabled
var updaterConnections: Int = 0
private var updaterConnections: Int = 0
override fun onCreate() {
super.onCreate()
@ -24,6 +25,7 @@ class GlobalApplication: Application(), YggStateReceiver.StateReceiver {
callback.register()
val receiver = YggStateReceiver(this)
receiver.register(this)
migrateDnsServers(this)
}
fun subscribe() {
@ -64,6 +66,28 @@ class GlobalApplication: Application(), YggStateReceiver.StateReceiver {
}
}
fun migrateDnsServers(context: Context) {
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
if (preferences.getInt(KEY_DNS_VERSION, 0) >= 1) {
return
}
val serverString = preferences.getString(KEY_DNS_SERVERS, "")
if (serverString!!.isNotEmpty()) {
// Replacing old Revertron's servers by new ones
val newServers = serverString
.replace("300:6223::53", "308:25:40:bd::")
.replace("302:7991::53", "308:62:45:62::")
.replace("302:db60::53", "308:84:68:55::")
.replace("301:1088::53", "308:c8:48:45::")
val editor = preferences.edit()
editor.putInt(KEY_DNS_VERSION, 1)
if (newServers != serverString) {
editor.putString(KEY_DNS_SERVERS, newServers)
}
editor.apply()
}
}
fun createServiceNotification(context: Context, state: State): Notification {
createNotificationChannels(context)

View file

@ -73,9 +73,9 @@
<string name="tile_enabled">Включено (Нет подключения)</string>
<string name="tile_connected">Подключено</string>
<string name="location_amsterdam">Амстердам, Нидерланды</string>
<string name="location_prague">Прага, Чехия</string>
<string name="location_frankfurt">Франкфурт, Германия</string>
<string name="location_bratislava">Братислава, Словакия</string>
<string name="location_buffalo">Баффало, США</string>
<string name="location_buffalo">Буффало, США</string>
<string name="channel_name">Сервис VPN</string>
<string name="channel_description">Главный канал нотификаций сервиса</string>
<string name="permission_notification_text">Нажмите здесь чтобы включить Yggdrasil.</string>

View file

@ -73,7 +73,7 @@
<string name="tile_enabled">Enabled (No connectivity)</string>
<string name="tile_connected">Connected</string>
<string name="location_amsterdam">Amsterdam, NL</string>
<string name="location_prague">Prague, CZ</string>
<string name="location_frankfurt">Frankfurt, DE</string>
<string name="location_bratislava">Bratislava, SK</string>
<string name="location_buffalo">Buffalo, US</string>
<string name="channel_name">VPN Service</string>