Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49176302 authored by Ricki Hirner's avatar Ricki Hirner
Browse files

Merge branch 'dev-3.x_NoCertificatesFoundToast-ose' into dev-3.x-ose

parents 0a06d0ea 2d6b9eef
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import androidx.fragment.app.viewModels
import at.bitfire.davdroid.R
import at.bitfire.davdroid.databinding.LoginCredentialsFragmentBinding
import at.bitfire.davdroid.model.Credentials
import com.google.android.material.snackbar.Snackbar
import java.net.URI
import java.net.URISyntaxException

@@ -44,12 +45,22 @@ class DefaultLoginCredentialsFragment : Fragment() {
        v.selectCertificate.setOnClickListener {
            KeyChain.choosePrivateKeyAlias(requireActivity(), { alias ->
                Handler(Looper.getMainLooper()).post {

                    // Show a Snackbar to add a certificate if no certificate was found
                    // API Versions < 29 still handle this automatically
                    if (alias == null && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q)  {
                        Snackbar.make(v.root, R.string.login_no_certificate_found, Snackbar.LENGTH_LONG)
                                .setAction(R.string.login_install_certificate) {
                                    startActivity(KeyChain.createInstallIntent())
                                }
                                .show()
                        }
                    else
                       model.certificateAlias.value = alias
                }
            }, null, null, null, -1, model.certificateAlias.value)
        }


        v.login.setOnClickListener {
            if (validate())
                parentFragmentManager.beginTransaction()
+2 −0
Original line number Diff line number Diff line
@@ -236,6 +236,8 @@
    <string name="login_type_advanced">Advanced login (special use cases)</string>
    <string name="login_use_username_password">Use username/password</string>
    <string name="login_use_client_certificate">Use client certificate</string>
    <string name="login_no_certificate_found">No certificate found</string>
    <string name="login_install_certificate">Install certificate</string>

    <string name="login_configuration_detection">Configuration detection</string>
    <string name="login_querying_server">Please wait, querying server…</string>