DeepLinkLoginActivity.kt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Nextcloud - Android Client
  3. *
  4. * SPDX-FileCopyrightText: 2023 Alper Ozturk <alper.ozturk@nextcloud.com>
  5. * SPDX-FileCopyrightText: 2018-2022 Tobias Kaminsky <tobias@kaminsky.me>
  6. * SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
  7. */
  8. package com.owncloud.android.authentication
  9. import android.os.Bundle
  10. import android.widget.TextView
  11. import android.widget.Toast
  12. import com.nextcloud.client.di.Injectable
  13. import com.owncloud.android.R
  14. class DeepLinkLoginActivity : AuthenticatorActivity(), Injectable {
  15. override fun onCreate(savedInstanceState: Bundle?) {
  16. super.onCreate(savedInstanceState)
  17. if (!resources.getBoolean(R.bool.multiaccount_support) &&
  18. accountManager.accounts.size == 1
  19. ) {
  20. Toast.makeText(this, R.string.no_mutliple_accounts_allowed, Toast.LENGTH_LONG).show()
  21. return
  22. }
  23. setContentView(R.layout.deep_link_login)
  24. intent.data?.let {
  25. try {
  26. val prefix = getString(R.string.login_data_own_scheme) + PROTOCOL_SUFFIX + "login/"
  27. val loginUrlInfo = parseLoginDataUrl(prefix, it.toString())
  28. val loginText = findViewById<TextView>(R.id.loginInfo)
  29. loginText.text = String.format(
  30. getString(R.string.direct_login_text),
  31. loginUrlInfo.username,
  32. loginUrlInfo.serverAddress
  33. )
  34. } catch (e: IllegalArgumentException) {
  35. Toast.makeText(this, R.string.direct_login_failed, Toast.LENGTH_LONG).show()
  36. }
  37. }
  38. }
  39. }