Linked verify connection with Settings Activities.
MAILAND-999
This commit is contained in:
parent
b40abda78f
commit
553fe33cd6
|
@ -30,11 +30,13 @@ import ch.protonmail.android.utils.AppUtil
|
|||
import ch.protonmail.android.utils.UiUtil
|
||||
import ch.protonmail.android.utils.moveToLogin
|
||||
import com.squareup.otto.Subscribe
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.Locale
|
||||
|
||||
@AndroidEntryPoint
|
||||
class AccountSettingsActivity : BaseSettingsActivity() {
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_settings
|
||||
|
|
|
@ -55,6 +55,7 @@ import ch.protonmail.android.utils.moveToLogin
|
|||
import ch.protonmail.android.views.CustomFontEditText
|
||||
import com.google.gson.Gson
|
||||
import com.squareup.otto.Subscribe
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.android.synthetic.main.activity_edit_settings_item.*
|
||||
|
||||
// region constants
|
||||
|
@ -75,6 +76,7 @@ enum class SettingsItem {
|
|||
BACKGROUND_SYNC
|
||||
}
|
||||
|
||||
@AndroidEntryPoint
|
||||
class EditSettingsItemActivity : BaseSettingsActivity() {
|
||||
|
||||
private var settingsItemType: SettingsItem = SettingsItem.DISPLAY_NAME_AND_SIGNATURE
|
||||
|
|
|
@ -29,7 +29,9 @@ import ch.protonmail.android.utils.AppUtil
|
|||
import ch.protonmail.android.utils.PREF_CUSTOM_APP_LANGUAGE
|
||||
import ch.protonmail.android.utils.moveToLogin
|
||||
import com.squareup.otto.Subscribe
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SettingsActivity : BaseSettingsActivity() {
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_settings
|
||||
|
|
|
@ -481,7 +481,7 @@ internal class MessageDetailsActivity :
|
|||
}
|
||||
|
||||
private fun listenForConnectivityEvent() {
|
||||
viewModel.hasConnection.observe(
|
||||
viewModel.hasConnectivity.observe(
|
||||
this,
|
||||
{ isConnectionActive ->
|
||||
Timber.v("isConnectionActive:$isConnectionActive")
|
||||
|
|
|
@ -165,7 +165,7 @@ internal class MessageDetailsViewModel @ViewModelInject constructor(
|
|||
val publicKeys = MutableLiveData<List<KeyInformation>>()
|
||||
lateinit var decryptedMessageData: MediatorLiveData<Message>
|
||||
|
||||
val hasConnection: LiveData<Boolean> = _verifyConnectionTrigger.switchMap {
|
||||
val hasConnectivity: LiveData<Boolean> = _verifyConnectionTrigger.switchMap {
|
||||
verifyConnection().map { onConnectivityEvent(it) }
|
||||
}
|
||||
|
||||
|
|
|
@ -71,7 +71,6 @@ import ch.protonmail.android.api.models.room.pendingActions.PendingActionsDataba
|
|||
import ch.protonmail.android.core.Constants
|
||||
import ch.protonmail.android.core.ProtonMailApplication
|
||||
import ch.protonmail.android.events.AttachmentFailedEvent
|
||||
import ch.protonmail.android.events.ConnectivityEvent
|
||||
import ch.protonmail.android.events.FetchLabelsEvent
|
||||
import ch.protonmail.android.events.user.MailSettingsEvent
|
||||
import ch.protonmail.android.jobs.FetchByLocationJob
|
||||
|
@ -83,10 +82,13 @@ import ch.protonmail.android.utils.AppUtil
|
|||
import ch.protonmail.android.utils.CustomLocale
|
||||
import ch.protonmail.android.utils.PREF_CUSTOM_APP_LANGUAGE
|
||||
import ch.protonmail.android.utils.extensions.showToast
|
||||
import ch.protonmail.android.viewmodel.ConnectivityBaseViewModel
|
||||
import com.google.gson.Gson
|
||||
import com.squareup.otto.Subscribe
|
||||
import timber.log.Timber
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import javax.inject.Inject
|
||||
|
||||
// region constants
|
||||
const val EXTRA_CURRENT_MAILBOX_LOCATION = "Extra_Current_Mailbox_Location"
|
||||
|
@ -95,6 +97,9 @@ const val EXTRA_CURRENT_MAILBOX_LABEL_ID = "Extra_Current_Mailbox_Label_ID"
|
|||
|
||||
abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
||||
|
||||
@Inject
|
||||
lateinit var viewModel: ConnectivityBaseViewModel
|
||||
|
||||
// region views
|
||||
private val toolbar by lazy { findViewById<Toolbar>(R.id.toolbar) }
|
||||
private val settingsRecyclerView by lazy { findViewById<RecyclerView>(R.id.settingsRecyclerView) }
|
||||
|
@ -142,15 +147,21 @@ abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
|||
ProtonMailApplication.getApplication().bus.register(this)
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
ProtonMailApplication.getApplication().bus.unregister(this)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
user = mUserManager.user
|
||||
settingsAdapter.notifyDataSetChanged()
|
||||
viewModel.checkConnectivity()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
networkSnackBarUtil.hideAllSnackBars()
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
ProtonMailApplication.getApplication().bus.unregister(this)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
|
@ -187,7 +198,15 @@ abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
|||
|
||||
user = mUserManager.user
|
||||
|
||||
mDisplayName = if (user.getDisplayNameForAddress(user.addressId)?.isEmpty()!!) user.defaultAddress.email else user.getDisplayNameForAddress(user.addressId)!!
|
||||
mDisplayName = if (user.getDisplayNameForAddress(user.addressId)?.isEmpty()!!)
|
||||
user.defaultAddress.email
|
||||
else
|
||||
user.getDisplayNameForAddress(user.addressId)!!
|
||||
|
||||
viewModel.hasConnectivity.observe(
|
||||
this,
|
||||
{ onConnectivityEvent(it) }
|
||||
)
|
||||
}
|
||||
|
||||
override fun setContentView(layoutResID: Int) {
|
||||
|
@ -454,17 +473,28 @@ abstract class BaseSettingsActivity : BaseConnectivityActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Subscribe
|
||||
fun onConnectivityEvent(event: ConnectivityEvent) {
|
||||
if (!event.hasConnection()) {
|
||||
showNoConnSnack(callback = this)
|
||||
private fun onConnectivityEvent(hasConnection: Boolean) {
|
||||
Timber.v("onConnectivityEvent hasConnection:$hasConnection")
|
||||
if (!hasConnection) {
|
||||
networkSnackBarUtil.getNoConnectionSnackBar(
|
||||
mSnackLayout,
|
||||
mUserManager.user,
|
||||
this,
|
||||
{ onConnectivityCheckRetry() }
|
||||
).show()
|
||||
} else {
|
||||
mPingHasConnection = true
|
||||
hideNoConnSnack()
|
||||
networkSnackBarUtil.hideAllSnackBars()
|
||||
}
|
||||
}
|
||||
|
||||
private fun onConnectivityCheckRetry() {
|
||||
networkSnackBarUtil.getCheckingConnectionSnackBar(
|
||||
mSnackLayout
|
||||
).show()
|
||||
|
||||
viewModel.checkConnectivityDelayed()
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun onMailSettingsEvent(event: MailSettingsEvent) {
|
||||
loadMailSettings()
|
||||
|
|
|
@ -145,7 +145,7 @@ class ContactsActivity :
|
|||
::onContactsFetchedEvent
|
||||
)
|
||||
|
||||
contactsViewModel.hasConnection.observe(
|
||||
contactsViewModel.hasConnectivity.observe(
|
||||
this,
|
||||
{ onConnectivityEvent(it) }
|
||||
)
|
||||
|
@ -204,7 +204,7 @@ class ContactsActivity :
|
|||
}
|
||||
|
||||
private fun onConnectivityEvent(hasConnection: Boolean) {
|
||||
Timber.v("onConnectivityEvent")
|
||||
Timber.v("onConnectivityEvent hasConnection:$hasConnection")
|
||||
networkSnackBarUtil.hideAllSnackBars()
|
||||
if (!hasConnection) {
|
||||
networkSnackBarUtil.getNoConnectionSnackBar(
|
||||
|
|
|
@ -44,7 +44,7 @@ class ContactsViewModel @ViewModelInject constructor(
|
|||
val fetchContactsResult: LiveData<Boolean> =
|
||||
fetchContactsTrigger.switchMap { fetchContactsData() }
|
||||
|
||||
val hasConnection: LiveData<Boolean> = _verifyConnectionTrigger
|
||||
val hasConnectivity: LiveData<Boolean> = _verifyConnectionTrigger
|
||||
.switchMap { verifyConnection() }
|
||||
|
||||
fun isPaidUser(): Boolean = userManager.user.isPaidUser
|
||||
|
|
Loading…
Reference in New Issue