Add TasksAccountSettingsActivity

pull/1225/head
Alex Baker 5 years ago
parent eac1dbacd6
commit ee5bcb21e6

@ -366,6 +366,10 @@
android:name=".opentasks.OpenTaskAccountSettingsActivity" android:name=".opentasks.OpenTaskAccountSettingsActivity"
android:theme="@style/Tasks" /> android:theme="@style/Tasks" />
<activity
android:name=".auth.TasksAccountSettingsActivity"
android:theme="@style/Tasks" />
<activity <activity
android:name=".caldav.CaldavCalendarSettingsActivity" android:name=".caldav.CaldavCalendarSettingsActivity"
android:theme="@style/Tasks"/> android:theme="@style/Tasks"/>

@ -0,0 +1,66 @@
package org.tasks.auth
import android.app.Activity
import android.os.Bundle
import android.view.View
import androidx.appcompat.widget.Toolbar
import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import org.tasks.R
import org.tasks.caldav.BaseCaldavAccountSettingsActivity
@AndroidEntryPoint
class TasksAccountSettingsActivity : BaseCaldavAccountSettingsActivity(), Toolbar.OnMenuItemClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding.userLayout.visibility = View.GONE
binding.passwordLayout.visibility = View.GONE
binding.urlLayout.visibility = View.GONE
binding.repeat.visibility = View.GONE
}
override val description: Int
get() = 0
override val newPassword: String?
get() = ""
private suspend fun updateAccount(principal: String?) {
hideProgressIndicator()
caldavAccount!!.name = newName
caldavAccount!!.url = principal
caldavAccount!!.username = newUsername
caldavAccount!!.error = ""
if (passwordChanged()) {
caldavAccount!!.password = encryption.encrypt(newPassword!!)
}
caldavAccount!!.isSuppressRepeatingTasks = binding.repeat.isChecked
caldavDao.update(caldavAccount!!)
setResult(Activity.RESULT_OK)
finish()
}
override fun hasChanges() =
newName != caldavAccount!!.name
|| binding.repeat.isChecked != caldavAccount!!.isSuppressRepeatingTasks
override fun save() = lifecycleScope.launch {
if (newName.isBlank()) {
binding.nameLayout.error = getString(R.string.name_cannot_be_empty)
return@launch
}
updateAccount()
}
override suspend fun addAccount(url: String, username: String, password: String) {}
override suspend fun updateAccount(url: String, username: String, password: String) {}
override suspend fun updateAccount() = updateAccount(caldavAccount!!.url)
override val helpUrl: String
get() = getString(R.string.help_url_sync)
}

@ -20,7 +20,7 @@ class OpenTaskAccountSettingsActivity : BaseCaldavAccountSettingsActivity(), Too
binding.passwordLayout.visibility = View.GONE binding.passwordLayout.visibility = View.GONE
binding.urlLayout.visibility = View.GONE binding.urlLayout.visibility = View.GONE
if (caldavAccount!!.isOpenTaskEteSync || caldavAccount!!.isTasksOrg) { if (caldavAccount!!.isOpenTaskEteSync) {
binding.repeat.visibility = View.GONE binding.repeat.visibility = View.GONE
} }
} }

@ -27,6 +27,7 @@ import org.tasks.etesync.EteSyncAccountSettingsActivity
import org.tasks.injection.InjectingPreferenceFragment import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.jobs.WorkManager import org.tasks.jobs.WorkManager
import org.tasks.opentasks.OpenTaskAccountSettingsActivity import org.tasks.opentasks.OpenTaskAccountSettingsActivity
import org.tasks.auth.TasksAccountSettingsActivity
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import org.tasks.sync.AddAccountDialog.Companion.newAccountDialog import org.tasks.sync.AddAccountDialog.Companion.newAccountDialog
import org.tasks.sync.SyncAdapters import org.tasks.sync.SyncAdapters
@ -163,10 +164,10 @@ class Synchronization : InjectingPreferenceFragment() {
} }
preference.onPreferenceClickListener = Preference.OnPreferenceClickListener { preference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
val intent = Intent(context, when { val intent = Intent(context, when {
account.isTasksOrg -> TasksAccountSettingsActivity::class.java
account.isCaldavAccount -> CaldavAccountSettingsActivity::class.java account.isCaldavAccount -> CaldavAccountSettingsActivity::class.java
account.isEteSyncAccount -> EteSyncAccountSettingsActivity::class.java account.isEteSyncAccount -> EteSyncAccountSettingsActivity::class.java
account.isOpenTasks || account.isTasksOrg -> account.isOpenTasks -> OpenTaskAccountSettingsActivity::class.java
OpenTaskAccountSettingsActivity::class.java
else -> throw IllegalArgumentException("Unexpected account type: $account") else -> throw IllegalArgumentException("Unexpected account type: $account")
}) })
intent.putExtra(BaseCaldavAccountSettingsActivity.EXTRA_CALDAV_DATA, account) intent.putExtra(BaseCaldavAccountSettingsActivity.EXTRA_CALDAV_DATA, account)

Loading…
Cancel
Save