srctree

Robin Linden parent 9944063c 5c5669d0
Fix tox links not working if aTox is already open

inlinesplit
atox/src/main/kotlin/MainActivity.kt added: 24, removed: 20, total 4
@@ -39,29 +39,12 @@ class MainActivity : AppCompatActivity() {
 
// Only handle intent the first time it triggers the app.
if (savedInstanceState != null) return
when (intent.action) {
// Handle potential tox link
Intent.ACTION_VIEW -> {
val data = intent.dataString ?: ""
Log.i(TAG, "Got uri with data: $data")
if (!data.startsWith(SCHEME) || data.length != SCHEME.length + TOX_ID_LENGTH) {
Log.e(TAG, "Got malformed uri: $data")
return
}
 
supportFragmentManager.findFragmentById(R.id.nav_host_fragment)?.findNavController()?.navigate(
R.id.action_contactListFragment_to_addContactFragment,
bundleOf("toxId" to data.drop(SCHEME.length))
)
}
Intent.ACTION_SEND -> handleShareIntent(intent)
}
handleIntent(intent)
}
 
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
if (intent?.action != Intent.ACTION_SEND) return
handleShareIntent(intent)
handleIntent(intent)
}
 
override fun onPause() {
@@ -74,6 +57,27 @@ class MainActivity : AppCompatActivity() {
autoAway.onForeground()
}
 
private fun handleIntent(intent: Intent?) {
when (intent?.action) {
Intent.ACTION_VIEW -> handleToxLinkIntent(intent)
Intent.ACTION_SEND -> handleShareIntent(intent)
}
}
 
private fun handleToxLinkIntent(intent: Intent) {
val data = intent.dataString ?: ""
Log.i(TAG, "Got uri with data: $data")
if (!data.startsWith(SCHEME) || data.length != SCHEME.length + TOX_ID_LENGTH) {
Log.e(TAG, "Got malformed uri: $data")
return
}
 
supportFragmentManager.findFragmentById(R.id.nav_host_fragment)?.findNavController()?.navigate(
R.id.addContactFragment,
bundleOf("toxId" to data.drop(SCHEME.length))
)
}
 
private fun handleShareIntent(intent: Intent) {
if (intent.type != "text/plain") {
Log.e(TAG, "Got unsupported share type ${intent.type}")