Loading app/src/main/java/at/bitfire/davdroid/AccountSettings.kt +1 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ class AccountSettings( const val KEY_SETTINGS_VERSION = "version" const val KEY_USERNAME = "user_name" private const val KEY_EMAIL_ADDRESS = "email_address" const val KEY_EMAIL_ADDRESS = "email_address" const val KEY_AUTH_STATE = "auth_state" const val KEY_CERTIFICATE_ALIAS = "certificate_alias" Loading app/src/main/java/at/bitfire/davdroid/ui/AccountSettingsActivity.kt +18 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ package at.bitfire.davdroid.ui import android.Manifest import android.accounts.Account import android.accounts.AccountManager import android.content.ContentResolver import android.content.Context import android.content.Intent Loading Loading @@ -90,10 +91,18 @@ class AccountSettingsActivity: AppCompatActivity() { override fun onCreateLoader(id: Int, args: Bundle?) = AccountSettingsLoader(requireActivity(), args!!.getParcelable(EXTRA_ACCOUNT)) private fun launchSetup():Boolean { AccountManager.get(context).addAccount(getString(R.string.google_account_type), null, null, null, activity, null, null) return true } override fun onLoadFinished(loader: Loader<Pair<ISettings, AccountSettings>>, result: Pair<ISettings, AccountSettings>?) { val (settings, accountSettings) = result ?: return // preference group: authentication val prefCredentials = findPreference("credentials") as Preference val prefUserName = findPreference("username") as EditTextPreference val prefPassword = findPreference("password") as EditTextPreference val prefCertAlias = findPreference("certificate_alias") as Preference Loading @@ -101,6 +110,7 @@ class AccountSettingsActivity: AppCompatActivity() { val credentials = accountSettings.credentials() when (credentials.type) { Credentials.Type.UsernamePassword -> { prefCredentials.isVisible = false prefUserName.isVisible = true prefUserName.summary = credentials.userName prefUserName.text = credentials.userName Loading @@ -120,6 +130,7 @@ class AccountSettingsActivity: AppCompatActivity() { prefCertAlias.isVisible = false } Credentials.Type.ClientCertificate -> { prefCredentials.isVisible = false prefUserName.isVisible = false prefPassword.isVisible = false Loading @@ -135,6 +146,13 @@ class AccountSettingsActivity: AppCompatActivity() { true } } Credentials.Type.OAuth -> { prefCredentials.isVisible = true prefCredentials.setOnPreferenceClickListener{launchSetup()} prefUserName.isVisible = false prefPassword.isVisible = false prefCertAlias.isVisible = false } } // preference group: sync Loading app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt +16 −2 Original line number Diff line number Diff line Loading @@ -183,8 +183,22 @@ class AccountDetailsFragment : Fragment(), LoaderManager.LoaderCallbacks<CreateS Logger.log.log(Level.INFO, "Creating Android account with initial config", arrayOf(account, userData)) val accountManager = AccountManager.get(activity) if (!accountManager.addAccountExplicitly(account, config.credentials.password, userData)) if (!accountManager.addAccountExplicitly(account, config.credentials.password, userData)) { if (accountType == getString(R.string.google_account_type)) { for (googleAccount in accountManager.getAccountsByType(getString( R.string.google_account_type))) { if (userData.get(AccountSettings.KEY_EMAIL_ADDRESS) == accountManager .getUserData(account, AccountSettings.KEY_EMAIL_ADDRESS)) { accountManager.setUserData(googleAccount, AccountSettings.KEY_AUTH_STATE, userData.getString(AccountSettings.KEY_AUTH_STATE)) } } } else { return false } } if (!config.credentials.authState?.accessToken.isNullOrEmpty()) { accountManager.setAuthToken(account, Constants.AUTH_TOKEN_TYPE, config.credentials.authState!!.accessToken) } Loading app/src/main/res/values/strings.xml +3 −1 Original line number Diff line number Diff line Loading @@ -176,9 +176,11 @@ <string name="settings_title">Settings: %s</string> <string name="settings_authentication">Authentication</string> <string name="settings_username">User name</string> <string name="settings_credentials">Credentials</string> <string name="settings_credentials_summary">Update username and password</string> <string name="settings_enter_username">Enter user name:</string> <string name="settings_password">Password</string> <string name="settings_password_summary">Update the password according to your server.</string> <string name="settings_password_summary">Update password according to your server</string> <string name="settings_enter_password">Enter your password:</string> <string name="settings_certificate_alias">Client certificate alias</string> <string name="settings_sync">Synchronization</string> Loading app/src/main/res/xml/settings_account.xml +6 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,12 @@ <PreferenceCategory android:title="@string/settings_authentication"> <Preference android:key="credentials" android:title="@string/settings_credentials" android:summary="@string/settings_credentials_summary" android:persistent="false"/> <EditTextPreference android:key="username" android:title="@string/settings_username" Loading Loading
app/src/main/java/at/bitfire/davdroid/AccountSettings.kt +1 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ class AccountSettings( const val KEY_SETTINGS_VERSION = "version" const val KEY_USERNAME = "user_name" private const val KEY_EMAIL_ADDRESS = "email_address" const val KEY_EMAIL_ADDRESS = "email_address" const val KEY_AUTH_STATE = "auth_state" const val KEY_CERTIFICATE_ALIAS = "certificate_alias" Loading
app/src/main/java/at/bitfire/davdroid/ui/AccountSettingsActivity.kt +18 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ package at.bitfire.davdroid.ui import android.Manifest import android.accounts.Account import android.accounts.AccountManager import android.content.ContentResolver import android.content.Context import android.content.Intent Loading Loading @@ -90,10 +91,18 @@ class AccountSettingsActivity: AppCompatActivity() { override fun onCreateLoader(id: Int, args: Bundle?) = AccountSettingsLoader(requireActivity(), args!!.getParcelable(EXTRA_ACCOUNT)) private fun launchSetup():Boolean { AccountManager.get(context).addAccount(getString(R.string.google_account_type), null, null, null, activity, null, null) return true } override fun onLoadFinished(loader: Loader<Pair<ISettings, AccountSettings>>, result: Pair<ISettings, AccountSettings>?) { val (settings, accountSettings) = result ?: return // preference group: authentication val prefCredentials = findPreference("credentials") as Preference val prefUserName = findPreference("username") as EditTextPreference val prefPassword = findPreference("password") as EditTextPreference val prefCertAlias = findPreference("certificate_alias") as Preference Loading @@ -101,6 +110,7 @@ class AccountSettingsActivity: AppCompatActivity() { val credentials = accountSettings.credentials() when (credentials.type) { Credentials.Type.UsernamePassword -> { prefCredentials.isVisible = false prefUserName.isVisible = true prefUserName.summary = credentials.userName prefUserName.text = credentials.userName Loading @@ -120,6 +130,7 @@ class AccountSettingsActivity: AppCompatActivity() { prefCertAlias.isVisible = false } Credentials.Type.ClientCertificate -> { prefCredentials.isVisible = false prefUserName.isVisible = false prefPassword.isVisible = false Loading @@ -135,6 +146,13 @@ class AccountSettingsActivity: AppCompatActivity() { true } } Credentials.Type.OAuth -> { prefCredentials.isVisible = true prefCredentials.setOnPreferenceClickListener{launchSetup()} prefUserName.isVisible = false prefPassword.isVisible = false prefCertAlias.isVisible = false } } // preference group: sync Loading
app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.kt +16 −2 Original line number Diff line number Diff line Loading @@ -183,8 +183,22 @@ class AccountDetailsFragment : Fragment(), LoaderManager.LoaderCallbacks<CreateS Logger.log.log(Level.INFO, "Creating Android account with initial config", arrayOf(account, userData)) val accountManager = AccountManager.get(activity) if (!accountManager.addAccountExplicitly(account, config.credentials.password, userData)) if (!accountManager.addAccountExplicitly(account, config.credentials.password, userData)) { if (accountType == getString(R.string.google_account_type)) { for (googleAccount in accountManager.getAccountsByType(getString( R.string.google_account_type))) { if (userData.get(AccountSettings.KEY_EMAIL_ADDRESS) == accountManager .getUserData(account, AccountSettings.KEY_EMAIL_ADDRESS)) { accountManager.setUserData(googleAccount, AccountSettings.KEY_AUTH_STATE, userData.getString(AccountSettings.KEY_AUTH_STATE)) } } } else { return false } } if (!config.credentials.authState?.accessToken.isNullOrEmpty()) { accountManager.setAuthToken(account, Constants.AUTH_TOKEN_TYPE, config.credentials.authState!!.accessToken) } Loading
app/src/main/res/values/strings.xml +3 −1 Original line number Diff line number Diff line Loading @@ -176,9 +176,11 @@ <string name="settings_title">Settings: %s</string> <string name="settings_authentication">Authentication</string> <string name="settings_username">User name</string> <string name="settings_credentials">Credentials</string> <string name="settings_credentials_summary">Update username and password</string> <string name="settings_enter_username">Enter user name:</string> <string name="settings_password">Password</string> <string name="settings_password_summary">Update the password according to your server.</string> <string name="settings_password_summary">Update password according to your server</string> <string name="settings_enter_password">Enter your password:</string> <string name="settings_certificate_alias">Client certificate alias</string> <string name="settings_sync">Synchronization</string> Loading
app/src/main/res/xml/settings_account.xml +6 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,12 @@ <PreferenceCategory android:title="@string/settings_authentication"> <Preference android:key="credentials" android:title="@string/settings_credentials" android:summary="@string/settings_credentials_summary" android:persistent="false"/> <EditTextPreference android:key="username" android:title="@string/settings_username" Loading