Add elevation to toolbar in settings screens

Facelift to v4 designs to Auto-download message setting screen and background sync setting screen
This commit is contained in:
Zorica Stojchevska 2021-06-05 02:59:07 +02:00
parent 808617b08a
commit 82bb725d4e
5 changed files with 139 additions and 42 deletions

View File

@ -56,6 +56,9 @@ class AccountSettingsActivity : BaseSettingsActivity() {
actionBar.setTitle(R.string.account_settings)
}
val elevation = resources.getDimensionPixelSize(R.dimen.action_bar_elevation).toFloat()
actionBar?.elevation = elevation
mSnackLayout = findViewById(R.id.layout_no_connectivity_info)
}

View File

@ -46,7 +46,6 @@ import com.squareup.otto.Subscribe
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.android.synthetic.main.activity_edit_settings_item.*
import me.proton.core.util.android.sharedpreferences.set
import me.proton.core.util.kotlin.EMPTY_STRING
import timber.log.Timber
// region constants
@ -87,14 +86,14 @@ class EditSettingsItemActivity : BaseSettingsActivity() {
val actionBar = supportActionBar
actionBar?.setDisplayHomeAsUpEnabled(true)
val elevation = resources.getDimensionPixelSize(R.dimen.action_bar_elevation).toFloat()
actionBar?.elevation = elevation
settingsItemType = intent.getSerializableExtra(EXTRA_SETTINGS_ITEM_TYPE) as SettingsItem
settingsItemValue = intent.getStringExtra(EXTRA_SETTINGS_ITEM_VALUE)
mSnackLayout = findViewById(R.id.layout_no_connectivity_info)
val oldSettings = arrayOf(SettingsItem.AUTO_DOWNLOAD_MESSAGES, SettingsItem.BACKGROUND_SYNC)
if (settingsItemType !in oldSettings) {
val jsonSettingsListResponse =
resources.openRawResource(R.raw.edit_settings_structure).bufferedReader().use { it.readText() }
@ -102,7 +101,6 @@ class EditSettingsItemActivity : BaseSettingsActivity() {
val settingsUiList =
gson.fromJson(jsonSettingsListResponse, Array<Array<SettingsItemUiModel>>::class.java).asList()
setUpSettingsItems(settingsUiList[settingsItemType.ordinal].asList())
}
renderViews()
@ -111,7 +109,6 @@ class EditSettingsItemActivity : BaseSettingsActivity() {
}
}
override fun onResume() {
super.onResume()
renderViews()
@ -167,7 +164,6 @@ class EditSettingsItemActivity : BaseSettingsActivity() {
}
setEnabled(SettingsEnum.SIGNATURE, legacyUser.isShowSignature)
val currentMobileSignature = legacyUser.mobileSignature
if (!currentMobileSignature.isNullOrEmpty()) {
Timber.v("set mobileSignature $currentMobileSignature")
@ -240,8 +236,9 @@ class EditSettingsItemActivity : BaseSettingsActivity() {
setToggleListener(SettingsEnum.LINK_CONFIRMATION) { view: View, isChecked: Boolean ->
val prefs = checkNotNull(sharedPreferences)
if (view.isPressed && isChecked != prefs.getBoolean(PREF_HYPERLINK_CONFIRM, true))
if (view.isPressed && isChecked != prefs.getBoolean(PREF_HYPERLINK_CONFIRM, true)) {
prefs[PREF_HYPERLINK_CONFIRM] = isChecked
}
}
setEnabled(SettingsEnum.PREVENT_SCREENSHOTS, legacyUser.isPreventTakingScreenshots)
@ -284,45 +281,58 @@ class EditSettingsItemActivity : BaseSettingsActivity() {
}
}
actionBarTitle = R.string.privacy
}
SettingsItem.AUTO_DOWNLOAD_MESSAGES -> {
settingsRecyclerViewParent.visibility = View.GONE
featureTitle.text = getString(R.string.auto_download_messages_title)
enableFeatureSwitch.isChecked = legacyUser.isGcmDownloadMessageDetails
enableFeatureSwitch.setOnCheckedChangeListener { view, isChecked ->
setValue(
SettingsEnum.AUTO_DOWNLOAD_MESSAGES,
getString(R.string.auto_download_messages_subtitle)
)
setEnabled(SettingsEnum.AUTO_DOWNLOAD_MESSAGES, legacyUser.isGcmDownloadMessageDetails)
val gcmDownloadDetailsChanged = legacyUser.isGcmDownloadMessageDetails != isChecked
if (view.isPressed && gcmDownloadDetailsChanged) {
setToggleListener(SettingsEnum.AUTO_DOWNLOAD_MESSAGES) { _: View, isChecked: Boolean ->
if (isChecked != legacyUser.isGcmDownloadMessageDetails) {
legacyUser.isGcmDownloadMessageDetails = isChecked
}
}
descriptionParent.visibility = View.VISIBLE
description.text = getString(R.string.auto_download_messages_subtitle)
actionBarTitle = R.string.auto_download_messages_title
}
SettingsItem.BACKGROUND_SYNC -> {
settingsRecyclerViewParent.visibility = View.GONE
featureTitle.text = getString(R.string.settings_background_sync)
enableFeatureSwitch.isChecked = legacyUser.isBackgroundSync
enableFeatureSwitch.setOnCheckedChangeListener { view, isChecked ->
setValue(
SettingsEnum.BACKGROUND_SYNC,
getString(R.string.background_sync_subtitle)
)
setEnabled(SettingsEnum.BACKGROUND_SYNC, legacyUser.isBackgroundSync)
if (view.isPressed && isChecked != legacyUser.isBackgroundSync) {
setToggleListener(SettingsEnum.BACKGROUND_SYNC) { _: View, isChecked: Boolean ->
if (isChecked != legacyUser.isBackgroundSync) {
legacyUser.isBackgroundSync = isChecked
if (legacyUser.isBackgroundSync) {
val alarmReceiver = AlarmReceiver()
alarmReceiver.setAlarm(ProtonMailApplication.getApplication())
}
}
}
descriptionParent.visibility = View.VISIBLE
description.text = getString(R.string.background_sync_subtitle)
actionBarTitle = R.string.settings_background_sync
// settingsRecyclerViewParent.visibility = View.GONE
// featureTitle.text = getString(R.string.settings_background_sync)
// enableFeatureSwitch.isChecked = legacyUser.isBackgroundSync
//
// enableFeatureSwitch.setOnCheckedChangeListener { view, isChecked ->
//
// if (view.isPressed && isChecked != legacyUser.isBackgroundSync) {
// legacyUser.isBackgroundSync = isChecked
// if (legacyUser.isBackgroundSync) {
// val alarmReceiver = AlarmReceiver()
// alarmReceiver.setAlarm(ProtonMailApplication.getApplication())
// }
// }
// }
//
// descriptionParent.visibility = View.VISIBLE
// description.text = getString(R.string.background_sync_subtitle)
// actionBarTitle = R.string.settings_background_sync
}
SettingsItem.SWIPE -> {
val mailSettings = checkNotNull(userManager.getCurrentUserMailSettingsBlocking())

View File

@ -44,6 +44,9 @@ class SettingsActivity : BaseSettingsActivity() {
actionBar.setTitle(R.string.settings)
}
val elevation = resources.getDimensionPixelSize(R.dimen.action_bar_elevation).toFloat()
actionBar?.elevation = elevation
mSnackLayout = findViewById(R.id.layout_no_connectivity_info)
setUpSettingsItems(R.raw.settings_structure)
@ -74,7 +77,6 @@ class SettingsActivity : BaseSettingsActivity() {
val appLanguage = sharedPreferences!!.getString(PREF_CUSTOM_APP_LANGUAGE, "")
if (appLanguage.isNullOrEmpty()) {
setValue(SettingsEnum.APP_LANGUAGE, getString(R.string.auto_detect))
} else {
for (i in languageLabels.indices) {
if (languageValues[i] == appLanguage) {
@ -89,10 +91,15 @@ class SettingsActivity : BaseSettingsActivity() {
setValue(SettingsEnum.AUTO_LOCK, autoLockSettingValue)
val allowSecureConnectionsViaThirdPartiesSettingValue =
if (legacyUser.allowSecureConnectionsViaThirdParties) getString(R.string.allowed) else getString(R.string.denied)
if (legacyUser.allowSecureConnectionsViaThirdParties) getString(R.string.allowed) else getString(
R.string.denied
)
setValue(SettingsEnum.CONNECTIONS_VIA_THIRD_PARTIES, allowSecureConnectionsViaThirdPartiesSettingValue)
setValue(SettingsEnum.COMBINED_CONTACTS, if (legacyUser.combinedContacts) getString(R.string.enabled) else getString(R.string.disabled))
setValue(
SettingsEnum.COMBINED_CONTACTS,
if (legacyUser.combinedContacts) getString(R.string.enabled) else getString(R.string.disabled)
)
setValue(
SettingsEnum.APP_VERSION,

View File

@ -23,181 +23,240 @@ import ch.protonmail.android.R
enum class SettingsEnum {
ACCOUNT {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = ""
},
SUBSCRIPTION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.subscription)
},
PASSWORD_MANAGEMENT {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.password_manager)
},
RECOVERY_EMAIL {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.recovery_email)
},
MAILBOX_SIZE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.storage)
},
CONVERSATION_MODE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.enable_conversation_mode)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.enable_conversation_mode)
},
DEFAULT_EMAIL {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.default_mail_address)
},
DISPLAY_NAME_N_SIGNATURE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.display_name_n_signature)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.display_name_n_signature)
},
DISPLAY_NAME {
override fun getHint(context: Context): String = context.resources.getString(R.string.edit_display_name)
override fun getHeader(context: Context): String = context.resources.getString(R.string.display_name)
},
SIGNATURE {
override fun getHint(context: Context): String = context.resources.getString(R.string.edit_settings)
override fun getHeader(context: Context): String = context.resources.getString(R.string.signature)
},
MOBILE_SIGNATURE {
override fun getHint(context: Context): String = context.resources.getString(R.string.edit_mobile_signature)
override fun getHeader(context: Context): String = context.resources.getString(R.string.mobile_signature)
},
NOTIFICATION_SNOOZE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.notifications_snooze)
},
PRIVACY {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.privacy)
},
AUTO_DOWNLOAD_MESSAGES {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.auto_download_messages_title)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.auto_download_messages_title)
},
BACKGROUND_REFRESH {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.settings_background_sync)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.settings_background_sync)
},
SEARCH {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.x_search)
},
LABELS_N_FOLDERS {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.labels_and_folders)
},
LABELS_MANAGER {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.labels_manage)
},
FOLDERS_MANAGER {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.folders_manage)
},
SWIPING_GESTURE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.swiping_gesture)
},
SWIPE_LEFT {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.swipe_action_left)
},
SWIPE_RIGHT {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.swipe_action_right)
},
LOCAL_STORAGE_LIMIT {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.local_storage)
},
PUSH_NOTIFICATION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.push_notifications)
},
NOTIFICATION_SETTINGS {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.notification_settings)
},
AUTO_LOCK {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.auto_lock)
},
APP_VERSION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.app_version)
},
APP_LANGUAGE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.app_language)
},
CONNECTIONS_VIA_THIRD_PARTIES {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.connections_via_third_parties)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.connections_via_third_parties)
},
ALLOW_SECURE_CONNECTIONS_VIA_THIRD_PARTIES {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.allow_secure_connections_via_third_parties)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.allow_secure_connections_via_third_parties)
},
COMBINED_CONTACTS {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.combined_contacts)
},
EXTENDED_NOTIFICATION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.extended_notifications)
},
SHOW_EMBEDDED_IMAGES {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.settings_auto_show_embedded_images)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.settings_auto_show_embedded_images)
},
SHOW_REMOTE_IMAGES {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.settings_auto_show_images)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.settings_auto_show_images)
},
PREVENT_SCREENSHOTS {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.settings_prevent_taking_screenshots)
override fun getHeader(context: Context): String =
context.resources.getString(R.string.settings_prevent_taking_screenshots)
},
LINK_CONFIRMATION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.hyperlink_confirmation)
},
APP_LOCAL_CACHE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.local_cache_management)
},
ACCOUNT_SETTINGS {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.account_settings)
},
APP_SETTINGS {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.app_settings)
},
APP_INFORMATION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.app_info)
},
ACCOUNT_SECTION {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.account)
},
ADDRESSES {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.addresses)
},
SNOOZE {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.snooze_header)
},
MAILBOX {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String = context.resources.getString(R.string.mailbox)
};
},
BACKGROUND_SYNC {
override fun getHint(context: Context): String = ""
override fun getHeader(context: Context): String =
context.resources.getString(R.string.settings_background_sync)
}, ;
abstract fun getHint(context: Context): String
abstract fun getHeader(context: Context): String

View File

@ -131,5 +131,23 @@
"setting_hasValue": true,
"setting_type": "toggle"
}
],
[
{
"setting_id": "auto_download_messages",
"is_section": false,
"setting_value": "",
"setting_hasValue": true,
"setting_type": "toggle"
}
],
[
{
"setting_id": "background_sync",
"is_section": false,
"setting_value": "",
"setting_hasValue": true,
"setting_type": "toggle"
}
]
]