Integrate Core Password management and recovery email management.
This commit is contained in:
parent
bf3154b963
commit
e32ce5d351
|
@ -33,6 +33,7 @@ import android.view.View
|
|||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
@ -83,11 +84,16 @@ import ch.protonmail.android.utils.UiUtil
|
|||
import ch.protonmail.android.utils.extensions.app
|
||||
import ch.protonmail.android.utils.extensions.showToast
|
||||
import ch.protonmail.android.utils.startMailboxActivity
|
||||
import ch.protonmail.android.utils.ui.dialogs.DialogUtils.Companion.showInfoDialog
|
||||
import ch.protonmail.android.viewmodel.ConnectivityBaseViewModel
|
||||
import com.google.gson.Gson
|
||||
import kotlinx.android.synthetic.main.activity_settings.*
|
||||
import kotlinx.android.synthetic.main.settings_item_layout.view.*
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.launch
|
||||
import me.proton.core.accountmanager.domain.AccountManager
|
||||
import me.proton.core.usersettings.presentation.UserSettingsOrchestrator
|
||||
import me.proton.core.usersettings.presentation.onPasswordManagementResult
|
||||
import me.proton.core.usersettings.presentation.onUpdateRecoveryEmailResult
|
||||
import timber.log.Timber
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
|
@ -113,6 +119,11 @@ abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
|||
@Inject
|
||||
lateinit var attachmentMetadataDao: AttachmentMetadataDao
|
||||
|
||||
@Inject
|
||||
lateinit var userSettingsOrchestrator: UserSettingsOrchestrator
|
||||
@Inject
|
||||
lateinit var accountManager: AccountManager
|
||||
|
||||
// region views
|
||||
private val toolbar by lazy { findViewById<Toolbar>(R.id.toolbar) }
|
||||
// endregion
|
||||
|
@ -164,6 +175,7 @@ abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
|||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
userSettingsOrchestrator.register(this)
|
||||
legacyUser = userManager.requireCurrentLegacyUser()
|
||||
user = legacyUser.toNewUser()
|
||||
val userId = user.id
|
||||
|
@ -295,15 +307,33 @@ abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
|||
AppUtil.decorInAppIntent(Intent(this, AccountTypeActivity::class.java))
|
||||
startActivity(accountTypeIntent)
|
||||
}
|
||||
PASSWORD_MANAGEMENT,
|
||||
PASSWORD_MANAGEMENT -> {
|
||||
lifecycleScope.launch {
|
||||
accountManager.getPrimaryUserId().first()?.let {
|
||||
with(userSettingsOrchestrator) {
|
||||
onPasswordManagementResult {
|
||||
if (it?.result == true) {
|
||||
showToast(getString(R.string.password_changed))
|
||||
}
|
||||
}
|
||||
startPasswordManagementWorkflow(userId = it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
RECOVERY_EMAIL -> {
|
||||
showInfoDialog(
|
||||
this,
|
||||
"",
|
||||
getString(R.string.info_for_missing_functionality)
|
||||
) { unit: Unit -> unit }
|
||||
// TODO("startChangePasswordWorkflow")
|
||||
// TODO("startrecoverysetupworkflow")
|
||||
lifecycleScope.launch {
|
||||
accountManager.getPrimaryUserId().first()?.let {
|
||||
with(userSettingsOrchestrator) {
|
||||
onUpdateRecoveryEmailResult {
|
||||
if (it?.result == true) {
|
||||
showToast(getString(R.string.recovery_email_changed))
|
||||
}
|
||||
}
|
||||
startUpdateRecoveryEmailWorkflow(userId = it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
DEFAULT_EMAIL -> {
|
||||
showSortAliasDialog()
|
||||
|
|
|
@ -49,9 +49,6 @@ import me.proton.core.user.domain.repository.DomainRepository
|
|||
import me.proton.core.user.domain.repository.PassphraseRepository
|
||||
import me.proton.core.user.domain.repository.UserAddressRepository
|
||||
import me.proton.core.user.domain.repository.UserRepository
|
||||
import me.proton.core.usersettings.data.db.UserSettingsDatabase
|
||||
import me.proton.core.usersettings.data.repository.UserSettingsRepositoryImpl
|
||||
import me.proton.core.usersettings.domain.repository.UserSettingsRepository
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
|
|
|
@ -829,7 +829,9 @@
|
|||
<string name="payment_method">Payment Method</string>
|
||||
|
||||
<string name="password_manager">Password management</string>
|
||||
<string name="password_changed">Password changed.</string>
|
||||
<string name="recovery_email">Recovery email</string>
|
||||
<string name="recovery_email_changed">Recovery email changed.</string>
|
||||
<string name="info_for_missing_functionality">Please log in through <a href="https://www.protonmail.com/">protonmail.com</a> and access your settings to edit this information.</string>
|
||||
<string name="storage">Mailbox size</string>
|
||||
<string name="storage_used">%1$s / %2$s</string>
|
||||
|
@ -1080,4 +1082,5 @@
|
|||
<string name="decryption_of_message_failed">Decryption error: decryption of this message\'s encrypted content failed.</string>
|
||||
|
||||
<string name="labels_selected_limit_reached">Limit reached</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -138,7 +138,7 @@ const val `sentry version` = "1.7.30" // Released: Jan
|
|||
const val `sentry-plugin version` = "1.7.36" // Released: Oct 16, 2020
|
||||
const val `sonarQube version` = "2.7.1" // Released: May 14, 2019
|
||||
const val `stetho version` = "1.5.1" // Released: Mar 18, 2019
|
||||
const val `timber version` = "4.7.1" // Released:
|
||||
const val `timber version` = "4.7.1" // Released:
|
||||
const val `trustKit version` = "1.1.2" // Released: Jun 09, 2019
|
||||
const val `remark version` = "1.1.0" // Released: Dec 08, 2016
|
||||
const val `store version` = "4.0.2-KT15" // Released: May 17, 2021
|
||||
|
|
Loading…
Reference in New Issue