mirror of
https://github.com/karasevm/PrivateDNSAndroid.git
synced 2025-06-28 20:29:56 +00:00
Implement automatic dns option
This commit is contained in:
parent
1b321af43e
commit
04cc8ccf02
5 changed files with 67 additions and 10 deletions
|
@ -44,16 +44,33 @@ class DnsTileService : TileService() {
|
|||
val dnsMode = Settings.Global.getString(contentResolver, "private_dns_mode")
|
||||
val dnsProvider = Settings.Global.getString(contentResolver, "private_dns_specifier")
|
||||
|
||||
val sharedPrefs = this.getSharedPreferences("app_prefs", 0)
|
||||
val autoEnabled = sharedPrefs.getBoolean("auto_enabled", false)
|
||||
|
||||
|
||||
if (dnsMode.equals(DNS_MODE_OFF, ignoreCase = true)) {
|
||||
// refreshTile(qsTile, Tile.STATE_INACTIVE, getString(R.string.dns_off), R.drawable.ic_off_black_24dp)
|
||||
changeTileState(
|
||||
qsTile,
|
||||
Tile.STATE_ACTIVE,
|
||||
getNextAddress(dnsProvider),
|
||||
R.drawable.ic_private_black_24dp,
|
||||
DNS_MODE_PRIVATE,
|
||||
getNextAddress(dnsProvider)
|
||||
)
|
||||
if (autoEnabled) {
|
||||
changeTileState(
|
||||
qsTile,
|
||||
Tile.STATE_ACTIVE,
|
||||
getString(R.string.dns_auto),
|
||||
R.drawable.ic_auto_black_24dp,
|
||||
DNS_MODE_AUTO,
|
||||
dnsProvider
|
||||
)
|
||||
} else {
|
||||
changeTileState(
|
||||
qsTile,
|
||||
Tile.STATE_ACTIVE,
|
||||
getNextAddress(dnsProvider),
|
||||
R.drawable.ic_private_black_24dp,
|
||||
DNS_MODE_PRIVATE,
|
||||
getNextAddress(dnsProvider)
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
} else if (dnsMode == null || dnsMode.equals(DNS_MODE_AUTO, ignoreCase = true)) {
|
||||
changeTileState(
|
||||
qsTile,
|
||||
|
@ -101,13 +118,20 @@ class DnsTileService : TileService() {
|
|||
getString(R.string.dns_off),
|
||||
R.drawable.ic_off_black_24dp
|
||||
)
|
||||
} else if (dnsMode == null || dnsMode.equals(DNS_MODE_AUTO, ignoreCase = true)) {
|
||||
} else if (dnsMode == null) {
|
||||
refreshTile(
|
||||
qsTile,
|
||||
Tile.STATE_INACTIVE,
|
||||
getString(R.string.dns_unknown),
|
||||
R.drawable.ic_unknown_black_24dp
|
||||
)
|
||||
} else if (dnsMode.equals(DNS_MODE_AUTO, ignoreCase = true)) {
|
||||
refreshTile(
|
||||
qsTile,
|
||||
Tile.STATE_ACTIVE,
|
||||
getString(R.string.dns_auto),
|
||||
R.drawable.ic_auto_black_24dp
|
||||
)
|
||||
} else if (dnsMode.equals(DNS_MODE_PRIVATE, ignoreCase = true)) {
|
||||
val dnsProvider = Settings.Global.getString(contentResolver, "private_dns_specifier")
|
||||
if (dnsProvider != null) {
|
||||
|
|
|
@ -56,7 +56,11 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi
|
|||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||
|
||||
val curVal = sharedPrefs.getBoolean("auto_enabled", false)
|
||||
menuInflater.inflate(R.menu.menu_main, menu)
|
||||
menu?.findItem(R.id.enable_auto)?.setChecked(curVal)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -104,6 +108,16 @@ class MainActivity : AppCompatActivity(), AddServerDialogFragment.NoticeDialogLi
|
|||
true
|
||||
}
|
||||
|
||||
R.id.enable_auto -> {
|
||||
if (!item.isChecked){
|
||||
Toast.makeText(this, R.string.auto_mode_clarification, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
sharedPrefs.edit().putBoolean("auto_enabled", !item.isChecked).apply()
|
||||
item.setChecked(!item.isChecked)
|
||||
|
||||
true
|
||||
}
|
||||
|
||||
else -> {
|
||||
// If we got here, the user's action was not recognized.
|
||||
// Invoke the superclass to handle it.
|
||||
|
|
13
app/src/main/res/drawable/ic_auto_black_24dp.xml
Normal file
13
app/src/main/res/drawable/ic_auto_black_24dp.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M13.925,14.369L10.121,14.369L9.267,16.738L8.032,16.738L11.499,7.659h1.048l3.473,9.079h-1.228zM10.483,13.383h3.087L12.023,9.137Z"
|
||||
android:strokeWidth="1.06419"
|
||||
android:fillColor="#000000"/>
|
||||
<path
|
||||
android:pathData="m12,6c2.62,0 4.88,1.86 5.39,4.43l0.3,1.5 1.53,0.11c1.56,0.1 2.78,1.41 2.78,2.96 0,1.65 -1.35,3 -3,3H6C3.79,18 2,16.21 2,14 2,11.95 3.53,10.24 5.56,10.03L6.63,9.92 7.13,8.97C8.08,7.14 9.94,6 12,6M12,4C9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.65,-4.96C18.67,6.59 15.64,4 12,4Z"
|
||||
android:fillColor="#000000"/>
|
||||
</vector>
|
|
@ -5,6 +5,11 @@
|
|||
android:icon="@drawable/ic_baseline_add_24"
|
||||
android:title="@string/menu_add"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/enable_auto"
|
||||
android:checkable="true"
|
||||
android:title="@string/menu_auto_enabled"
|
||||
app:showAsAction="never" />
|
||||
<item android:id="@+id/privacy_policy"
|
||||
android:title="@string/menu_privacy_policy"
|
||||
app:showAsAction="never" />
|
||||
|
|
|
@ -6,9 +6,10 @@
|
|||
<string name="dns_auto">Auto</string>
|
||||
<string name="dns_unknown">Unknown</string>
|
||||
<string name="add_server">Add Server</string>
|
||||
<string name="add">Add</string>
|
||||
<string name="menu_add">Add</string>
|
||||
<string name="menu_privacy_policy">Privacy Policy</string>
|
||||
<string name="menu_auto_enabled">Enable auto</string>
|
||||
<string name="auto_mode_clarification">Automatic (opportunistic) DNS mode will now be available in the tile</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="delete_question">Delete server?</string>
|
||||
<string name="delete">Delete</string>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue