Added copy to clipboard of several fields. (#17)

* Added copy to clipboard when clicking ip address, subnet address and public key.

* Android CI

* Update CI

* Update `PATH` in CI

* Add NDK in CI

* Fix filename in CI

* Capture artifact in CI

* Tweaks in CI

* Update MainActivity.kt

* Update SettingsActivity.kt

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
This commit is contained in:
David Adrião 2022-10-30 21:47:53 +00:00 committed by GitHub
parent 24bcee7934
commit 87c6e4612b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 6 deletions

View file

@ -1,16 +1,14 @@
package eu.neilalexander.yggdrasil
import android.app.Activity
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.*
import android.graphics.Color
import android.net.VpnService
import android.os.Bundle
import android.widget.Switch
import android.widget.TableRow
import android.widget.TextView
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.localbroadcastmanager.content.LocalBroadcastManager
@ -97,6 +95,22 @@ class MainActivity : AppCompatActivity() {
val intent = Intent(this, SettingsActivity::class.java)
startActivity(intent)
}
ipAddressLabel.setOnLongClickListener {
val clipboard: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("ip", ipAddressLabel.text)
clipboard.setPrimaryClip(clip)
Toast.makeText(applicationContext,R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show()
true
}
subnetLabel.setOnLongClickListener {
val clipboard: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("subnet", subnetLabel.text)
clipboard.setPrimaryClip(clip)
Toast.makeText(applicationContext,R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show()
true
}
}
override fun onResume() {
@ -153,4 +167,4 @@ class MainActivity : AppCompatActivity() {
super.onPause()
LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver)
}
}
}

View file

@ -1,6 +1,8 @@
package eu.neilalexander.yggdrasil
import android.app.AlertDialog
import android.content.ClipData
import android.content.ClipboardManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ContextThemeWrapper
@ -55,6 +57,14 @@ class SettingsActivity : AppCompatActivity() {
builder.show()
}
publicKeyLabel.setOnLongClickListener {
val clipboard: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("public key", publicKeyLabel.text)
clipboard.setPrimaryClip(clip)
Toast.makeText(applicationContext,R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show()
true
}
updateView()
}
@ -68,4 +78,4 @@ class SettingsActivity : AppCompatActivity() {
publicKeyLabel.text = config.getJSON().getString("PublicKey")
}
}
}

View file

@ -1,5 +1,6 @@
<resources>
<string name="app_name">Yggdrasil</string>
<string name="copied_to_clipboard">Copied to clipboard</string>
<string name="dns_configured_servers_hint">Use these DNS servers while Yggdrasil is running. Note that all DNS requests, including for non-Yggdrasil internet hostnames, will be sent to these servers.</string>
<string name="dns_configured_servers_hint_empty">Yggdrasil will not configure any DNS servers when the service starts. All DNS requests will be resolved by the default resolver.</string>
<string name="dns_usable_servers_hint">These DNS servers are provided by community members. Click the + button to add them to the list above. Long-tap to see more info.</string>