diff --git a/app/core/src/main/java/com/fsck/k9/AccountPreferenceSerializer.kt b/app/core/src/main/java/com/fsck/k9/AccountPreferenceSerializer.kt index e827460425df7812d20e08dc42929e8148fee139..2290de0f42aac7a8d2677243a2a99144f9de8c09 100644 --- a/app/core/src/main/java/com/fsck/k9/AccountPreferenceSerializer.kt +++ b/app/core/src/main/java/com/fsck/k9/AccountPreferenceSerializer.kt @@ -126,7 +126,7 @@ class AccountPreferenceSerializer( accountNumber = storage.getInt("$accountUuid.accountNumber", UNASSIGNED_ACCOUNT_NUMBER) - chipColor = FALLBACK_ACCOUNT_COLOR + chipColor = storage.getInt("$accountUuid.chipColor", FALLBACK_ACCOUNT_COLOR) sortType = getEnumStringPref(storage, "$accountUuid.sortTypeEnum", SortType.SORT_DATE) @@ -294,7 +294,7 @@ class AccountPreferenceSerializer( editor.putBoolean("$accountUuid.syncRemoteDeletions", isSyncRemoteDeletions) editor.putInt("$accountUuid.maxPushFolders", maxPushFolders) editor.putString("$accountUuid.searchableFolders", searchableFolders.name) - editor.putInt("$accountUuid.chipColor", FALLBACK_ACCOUNT_COLOR) + editor.putInt("$accountUuid.chipColor", chipColor) editor.putBoolean("$accountUuid.subscribedFoldersOnly", isSubscribedFoldersOnly) editor.putInt("$accountUuid.maximumPolledMessageAge", maximumPolledMessageAge) editor.putInt("$accountUuid.maximumAutoDownloadMessageSize", maximumAutoDownloadMessageSize) diff --git a/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettings.kt b/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettings.kt index 927f04afa9bc1503692e57152ca16be308cc9575..337d8bc21299b9b34215e04eacb7f10565933a47 100644 --- a/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettings.kt +++ b/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettings.kt @@ -16,7 +16,8 @@ data class GeneralSettings( val appTheme: AppTheme, val messageViewTheme: SubTheme, val messageComposeTheme: SubTheme, - val fixedMessageViewTheme: Boolean + val fixedMessageViewTheme: Boolean, + val reloadAccountChipsColors: Boolean ) enum class BackgroundSync { diff --git a/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsDescriptions.java b/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsDescriptions.java index cb4bfeb8e8af4fb5515d0155900cf4af274f61b7..c1e9c1ac19eb79a8c013e6144b324034f9097ea1 100644 --- a/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsDescriptions.java +++ b/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsDescriptions.java @@ -274,6 +274,10 @@ public class GeneralSettingsDescriptions { s.put("showComposeButtonOnMessageList", Settings.versions( new V(85, new BooleanSetting(true)) )); + s.put("reloadAccountChipsColors", Settings.versions( + new V(85, new BooleanSetting(true)) + )); + SETTINGS = Collections.unmodifiableMap(s); diff --git a/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsManager.kt b/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsManager.kt index 2c9c4e2eaeb7f45d7cf987f24e9a9295f0e99f95..8b8b1c82360ea305ec7cd05e51a51ffdf191e7d0 100644 --- a/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsManager.kt +++ b/app/core/src/main/java/com/fsck/k9/preferences/GeneralSettingsManager.kt @@ -16,4 +16,5 @@ interface GeneralSettingsManager { fun setMessageViewTheme(subTheme: SubTheme) fun setMessageComposeTheme(subTheme: SubTheme) fun setFixedMessageViewTheme(fixedMessageViewTheme: Boolean) + fun setReloadAccountChipsColors(reloadAccountChipsColors: Boolean) } diff --git a/app/core/src/main/java/com/fsck/k9/preferences/RealGeneralSettingsManager.kt b/app/core/src/main/java/com/fsck/k9/preferences/RealGeneralSettingsManager.kt index adb2c53ff839f60e07c40f5ae5f63502c7340737..a9fea78001e4e2c0fd8d1e0f6085ad366512a60a 100644 --- a/app/core/src/main/java/com/fsck/k9/preferences/RealGeneralSettingsManager.kt +++ b/app/core/src/main/java/com/fsck/k9/preferences/RealGeneralSettingsManager.kt @@ -123,12 +123,18 @@ internal class RealGeneralSettingsManager( getSettings().copy(fixedMessageViewTheme = fixedMessageViewTheme).persist() } + @Synchronized + override fun setReloadAccountChipsColors(reloadAccountChipsColors: Boolean) { + getSettings().copy(reloadAccountChipsColors = reloadAccountChipsColors).persist() + } + private fun writeSettings(editor: StorageEditor, settings: GeneralSettings) { editor.putBoolean("showRecentChanges", settings.showRecentChanges) editor.putEnum("theme", settings.appTheme) editor.putEnum("messageViewTheme", settings.messageViewTheme) editor.putEnum("messageComposeTheme", settings.messageComposeTheme) editor.putBoolean("fixedMessageViewTheme", settings.fixedMessageViewTheme) + editor.putBoolean("reloadAccountChipsColors", settings.reloadAccountChipsColors) } private fun loadGeneralSettings(): GeneralSettings { @@ -140,7 +146,8 @@ internal class RealGeneralSettingsManager( appTheme = storage.getEnum("theme", AppTheme.FOLLOW_SYSTEM), messageViewTheme = storage.getEnum("messageViewTheme", SubTheme.USE_GLOBAL), messageComposeTheme = storage.getEnum("messageComposeTheme", SubTheme.USE_GLOBAL), - fixedMessageViewTheme = storage.getBoolean("fixedMessageViewTheme", true) + fixedMessageViewTheme = storage.getBoolean("fixedMessageViewTheme", true), + reloadAccountChipsColors = storage.getBoolean("reloadAccountChipsColors", true) ) updateSettingsFlow(settings) diff --git a/app/core/src/main/res/values/account_colors.xml b/app/core/src/main/res/values/account_colors.xml new file mode 100644 index 0000000000000000000000000000000000000000..e8be238548fce768e0aa7c7626923f907e2e16c4 --- /dev/null +++ b/app/core/src/main/res/values/account_colors.xml @@ -0,0 +1,31 @@ + + + + + #0F94F6 + #00B4B4 + #008D96 + #44B04C + #AFD83D + #FFED21 + #FFC300 + #FF7A00 + #F8432E + #ED1C61 + #6934B9 + #5754DC + diff --git a/app/core/src/main/res/values/arrays_account_settings_values.xml b/app/core/src/main/res/values/arrays_account_settings_values.xml index d20d463a1e0787ebaea6d654532598b90dc67514..b166f8af718d1af99e492f0a017968b731e35417 100644 --- a/app/core/src/main/res/values/arrays_account_settings_values.xml +++ b/app/core/src/main/res/values/arrays_account_settings_values.xml @@ -3,11 +3,24 @@ - 0xFF0086FF + @color/account_blue + @color/account_aqua + @color/account_teal + @color/account_green + @color/account_chartreuse + @color/account_yellow + @color/account_amber + @color/account_orange + @color/account_vermillion + @color/account_magenta + @color/account_purple + @color/account_violet - 0xFF0086FF + @color/account_blue + @color/account_magenta + @color/account_amber diff --git a/app/ui/legacy/build.gradle b/app/ui/legacy/build.gradle index c52e713da15f408d5d753942aa5396b2f85fa95b..f9957cde9b7d471ea1d57373fddd68088b27b1ee 100644 --- a/app/ui/legacy/build.gradle +++ b/app/ui/legacy/build.gradle @@ -56,6 +56,7 @@ dependencies { implementation libs.retrofit implementation libs.retrofit.converter.simplexml implementation libs.fullscreenloadingdialog + implementation libs.yetanotheraccountchip annotationProcessor libs.glide.compiler diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/account/AccountCreator.kt b/app/ui/legacy/src/main/java/com/fsck/k9/account/AccountCreator.kt index 3675fbc99d8fdb18ebc7c9eec49d9220cda71e35..4d7fb634c06c42f81e5ab541da895b663462d928 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/account/AccountCreator.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/account/AccountCreator.kt @@ -1,12 +1,11 @@ package com.fsck.k9.account import android.content.res.Resources -import androidx.core.content.res.ResourcesCompat import com.fsck.k9.Account.DeletePolicy import com.fsck.k9.Preferences +import com.fsck.k9.core.R import com.fsck.k9.mail.ConnectionSecurity import com.fsck.k9.preferences.Protocols -import com.fsck.k9.ui.R /** * Deals with logic surrounding account creation. @@ -52,6 +51,19 @@ class AccountCreator(private val preferences: Preferences, private val resources } fun pickColor(): Int { - return ResourcesCompat.getColor(resources, R.color.color_default_accent, null) + val accounts = preferences.accounts + val usedAccountColors = accounts.map { it.chipColor }.toSet() + val accountColors = resources.getIntArray(R.array.account_colors).toList() + + val availableColors = accountColors - usedAccountColors + if (availableColors.isEmpty()) { + return accountColors.random() + } + + val defaultAccountColors = resources.getIntArray(R.array.default_account_colors) + return availableColors.shuffled().minByOrNull { color -> + val index = defaultAccountColors.indexOf(color) + if (index != -1) index else defaultAccountColors.size + } ?: error("availableColors must not be empty") } } diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt index 6778625318ed47a0e677ffe7410ca0aa2e0f13f5..b86e9ab8a1936415564e1744bdd2f1ab3af1c343 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt @@ -49,6 +49,7 @@ import com.fsck.k9.Account import com.fsck.k9.K9 import com.fsck.k9.K9.SplitViewMode import com.fsck.k9.Preferences +import com.fsck.k9.account.AccountCreator import com.fsck.k9.account.BackgroundAccountRemover import com.fsck.k9.activity.compose.MessageActions import com.fsck.k9.activity.setup.AccountSetupBasics @@ -86,6 +87,7 @@ import com.fsck.k9.ui.permissions.PermissionUiHelper import com.fsck.k9.view.ViewSwitcher import com.fsck.k9.view.ViewSwitcher.OnSwitchCompleteListener import com.mikepenz.materialdrawer.util.getOptimalDrawerWidth +import java.util.function.Consumer import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.koin.android.ext.android.inject @@ -114,6 +116,7 @@ open class MessageList : private val generalSettingsManager: GeneralSettingsManager by inject() private val messagingController: MessagingController by inject() private val jobManager: K9JobManager by inject() + private val accountCreator: AccountCreator by inject() private val permissionUiHelper: PermissionUiHelper = K9PermissionUiHelper(this) @@ -173,6 +176,8 @@ open class MessageList : val accounts = preferences.accounts val hasAccountSetup = accounts.any { it.isFinishedSetup } if (!hasAccountSetup) { + generalSettingsManager.setReloadAccountChipsColors(false) + AccountSetupBasics.actionNewAccount(this) finish() return @@ -183,6 +188,11 @@ open class MessageList : return } + if (generalSettingsManager.getSettings().reloadAccountChipsColors) { + updateAccountColors(accounts) + generalSettingsManager.setReloadAccountChipsColors(false) + } + accounts.forEach(this::refreshShowPictureOption) if (useSplitView()) { @@ -236,6 +246,13 @@ open class MessageList : } } + private fun updateAccountColors(accounts: List) { + accounts.forEach { + it.chipColor = accountCreator.pickColor() + preferences.saveAccount(it) + } + } + public override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9Drawer.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9Drawer.kt index 8db265508570351da80662f271c57eaba5c11934..32dc6ab177c463039ff448d6d1376ca7ac64229f 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9Drawer.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9Drawer.kt @@ -59,6 +59,7 @@ import org.koin.core.component.inject import org.koin.core.parameter.parametersOf import com.fsck.k9.core.R as CoreR import com.mikepenz.materialdrawer.R as MaterialDrawerR +import android.view.View import timber.log.Timber private const val UNREAD_SYMBOL = "\u2B24" @@ -164,7 +165,7 @@ class K9Drawer(private val parent: MessageList, savedInstanceState: Bundle?) : K val color = uri.getQueryParameter(QUERY_COLOR)?.toInt() ?: error("Missing '$QUERY_COLOR' parameter in $uri") - accountImageLoader.setAccountImage(imageView, email, color) + accountImageLoader.setAccountImage(imageView, email, color, tag) } override fun cancel(imageView: ImageView) { @@ -252,6 +253,7 @@ class K9Drawer(private val parent: MessageList, savedInstanceState: Bundle?) : K } descriptionText = account.email identifier = account.drawerId + chipColor = account.chipColor tag = account textColor = selectedTextColor descriptionTextColor = selectedTextColor @@ -573,7 +575,18 @@ private class FooterDrawerItem : PrimaryDrawerItem() { } private class CustomProfileDrawerItem : ProfileDrawerItem() { + var chipColor: Int? = null + override val layoutRes: Int @LayoutRes get() = R.layout.custom_profile_drawer_item + + override fun bindView(holder: ViewHolder, payloads: List) { + super.bindView(holder, payloads) + + chipColor?.let { + val chipView: View = holder.itemView.findViewById(R.id.chip) + chipView.setBackgroundColor(it) + } + } } diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountFallbackImageProvider.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountFallbackImageProvider.kt index b062667633c6b947f25346c9336e9f88cd73f88a..75539dd8e2646bc2454fe7e8d2f85b99dceda7c4 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountFallbackImageProvider.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountFallbackImageProvider.kt @@ -2,14 +2,30 @@ package com.fsck.k9.ui.account import android.content.Context import android.graphics.drawable.Drawable +import android.graphics.drawable.GradientDrawable import androidx.core.content.ContextCompat import com.fsck.k9.ui.R +import com.lamounjush.yetanotheraccountchip.ChipDrawableBuilder +import com.lamounjush.yetanotheraccountchip.ChipTextStyle /** * Provides a [Drawable] for the account using the account's color as background color. */ class AccountFallbackImageProvider(private val context: Context) { - fun getDrawable(color: Int): Drawable { - return ContextCompat.getDrawable(context, R.drawable.ic_avatar)!! + fun getDrawable(email: String, color: Int, tag: String?): Drawable { + + //tag == PROFILE MEANS drawer header, textSize should be bigger + var textSize = 16.0f + if ("PROFILE" == tag) { + textSize = 28.0f + } + + return ChipDrawableBuilder() + .setBackgroundShape(GradientDrawable.OVAL) + .setBackgroundColor(color) + .setTextColor(ContextCompat.getColor(context, R.color.white)) + .setTextSizeInSp(context, textSize) + .setChipTextStyle(ChipTextStyle.FIRST_CHAR_UPPERCASE) + .build(email) } } diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageLoader.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageLoader.kt index 432d867e784f1edf1bbd3c70be869fe7086585e4..21e061ec83ae0c24570050b93b53f55809e85f57 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageLoader.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageLoader.kt @@ -11,13 +11,12 @@ import com.fsck.k9.ui.helper.findActivity * Load the account image into an [ImageView]. */ class AccountImageLoader(private val accountFallbackImageProvider: AccountFallbackImageProvider) { - fun setAccountImage(imageView: ImageView, email: String, color: Int) { + fun setAccountImage(imageView: ImageView, email: String, color: Int, tag: String?) { imageView.context.ifNotDestroyed { context -> Glide.with(context) - .load(AccountImage(email, color)) - .placeholder(R.drawable.ic_avatar) + .load(AccountImage(email, color, tag)) + .placeholder(accountFallbackImageProvider.getDrawable(email, color, tag)) .diskCacheStrategy(DiskCacheStrategy.NONE) - .fallback(R.drawable.ic_avatar) .dontAnimate() .into(imageView) } diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageModelLoader.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageModelLoader.kt index 7f2a0b096024abac5e2e3b9ba185ce03576cedd0..b03587b1bcfc5d55afc1d023831f9b72426780e2 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageModelLoader.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/account/AccountImageModelLoader.kt @@ -37,7 +37,7 @@ internal class AccountImageModelLoader( override fun handles(model: AccountImage) = true } -data class AccountImage(val email: String, val color: Int) : Key { +data class AccountImage(val email: String, val color: Int, val tag: String?) : Key { override fun updateDiskCacheKey(messageDigest: MessageDigest) { messageDigest.update(toString().toByteArray(Key.CHARSET)) } @@ -58,7 +58,8 @@ internal class AccountImageDataFetcher( private val accountImage: AccountImage ) : DataFetcher { override fun loadData(priority: Priority, callback: DataFetcher.DataCallback) { - callback.onDataReady(loadAccountImage()) + val bitmap = loadAccountImage() ?: createFallbackBitmap() + callback.onDataReady(bitmap) } private fun loadAccountImage(): Bitmap? { @@ -66,7 +67,7 @@ internal class AccountImageDataFetcher( } private fun createFallbackBitmap(): Bitmap { - return accountFallbackImageProvider.getDrawable(accountImage.color).toBitmap() + return accountFallbackImageProvider.getDrawable(accountImage.email, accountImage.color, accountImage.tag).toBitmap() } override fun getDataClass() = Bitmap::class.java diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt index 9078196b666a13698bcf6214f78d356eaf6fe0c6..e4af6f0fbc7b6f2c149137740ed46cc356aa4c82 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/messagelist/MessageListAdapter.kt @@ -19,6 +19,7 @@ import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.DrawableCompat import androidx.core.view.isVisible import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView @@ -327,11 +328,13 @@ class MessageListAdapter internal constructor( holder.rightCheveron.visibility = INVISIBLE holder.threadCount.isVisible = false holder.attachment.isVisible = false + holder.chip.visibility = GONE } else { holder.selected.isVisible = false holder.date.visibility = VISIBLE holder.rightCheveron.visibility = VISIBLE holder.endDivider.setBackgroundResource(R.color.color_default_divider) + holder.chip.visibility = if (appearance.showAccountChip) VISIBLE else GONE } with(messageListItem) { @@ -340,6 +343,12 @@ class MessageListAdapter internal constructor( val displayThreadCount = if (appearance.showingThreadedList) threadCount else 0 val subject = MlfUtils.buildSubject(subject, res.getString(R.string.general_no_subject), displayThreadCount) + if (appearance.showAccountChip) { + val accountChipDrawable = holder.chip.drawable.mutate() + DrawableCompat.setTint(accountChipDrawable, account.chipColor) + holder.chip.setImageDrawable(accountChipDrawable) + } + if (appearance.stars) { holder.flagged.isVisible = isStarred } else { diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStore.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStore.kt index 0b3d2d3e1e8f95317f0da58726aac19e90019324..9672c89366f77b4988225ef703094aab322eb576 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStore.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStore.kt @@ -79,7 +79,12 @@ class AccountSettingsDataStore( } override fun putInt(key: String?, value: Int) { - return + when (key) { + "chip_color" -> setAccountColor(value) + else -> return + } + + saveSettingsInBackground() } override fun getLong(key: String?, defValue: Long): Long { @@ -182,6 +187,16 @@ class AccountSettingsDataStore( saveSettingsInBackground() } + private fun setAccountColor(color: Int) { + if (color != account.chipColor) { + account.chipColor = color + + if (account.notificationSettings.light == NotificationLight.AccountColor) { + notificationSettingsChanged = true + } + } + } + private fun setNotificationSound(value: String) { account.notificationSettings.let { notificationSettings -> if (!notificationSettings.isRingEnabled || notificationSettings.ringtone != value) { diff --git a/app/ui/legacy/src/main/res/drawable/ic_account_color.xml b/app/ui/legacy/src/main/res/drawable/ic_account_color.xml index 94473a3a7eea812007222f7f39eea1258945ee25..5b5909fdf273b530eb71eedbb3ed92dae406ce10 100644 --- a/app/ui/legacy/src/main/res/drawable/ic_account_color.xml +++ b/app/ui/legacy/src/main/res/drawable/ic_account_color.xml @@ -1,6 +1,6 @@ + + - \ No newline at end of file + diff --git a/app/ui/legacy/src/main/res/layout/message_list_item.xml b/app/ui/legacy/src/main/res/layout/message_list_item.xml index 5f666364b2f9dfb6e1144d64cdea8d365f6b398c..1880e3581ef6400242787aea0dc391aedb28ce33 100644 --- a/app/ui/legacy/src/main/res/layout/message_list_item.xml +++ b/app/ui/legacy/src/main/res/layout/message_list_item.xml @@ -64,17 +64,6 @@ android:visibility="visible" tools:text="​" /> - - + + + diff --git a/app/ui/legacy/src/main/res/values/colors.xml b/app/ui/legacy/src/main/res/values/colors.xml index b141bbb03610290aa73ba4f6734caf740d8aefc5..a2af1f29623639824a2ffd08964c8e744b9482d6 100644 --- a/app/ui/legacy/src/main/res/values/colors.xml +++ b/app/ui/legacy/src/main/res/values/colors.xml @@ -59,4 +59,6 @@ #3e3e3e #FFC300 + + #FFFFFF diff --git a/app/ui/legacy/src/main/res/values/values.xml b/app/ui/legacy/src/main/res/values/values.xml new file mode 100644 index 0000000000000000000000000000000000000000..7947cabdae72adf8d0074bd8261bf51f7c20d46e --- /dev/null +++ b/app/ui/legacy/src/main/res/values/values.xml @@ -0,0 +1,20 @@ + + + + + 0dp + diff --git a/app/ui/legacy/src/main/res/xml/account_settings.xml b/app/ui/legacy/src/main/res/xml/account_settings.xml index 6e9187344a4652d6c0cd6d4d9fecb07480ee22fc..5214b7bcf77c0da76d54c5bea330db40bcc52668 100644 --- a/app/ui/legacy/src/main/res/xml/account_settings.xml +++ b/app/ui/legacy/src/main/res/xml/account_settings.xml @@ -24,8 +24,7 @@ android:key="chip_color" android:summary="@string/account_settings_color_summary" android:title="@string/account_settings_color_label" - app:pref_colors="@array/account_colors" - app:isPreferenceVisible="false" /> + app:pref_colors="@array/account_colors" /> diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index de57df68f95ae10b884b3b9b69546cb503842836..d85ac29371bd18d483d81800b4999018ffe163db 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -113,6 +113,7 @@ retrofit = "com.squareup.retrofit2:retrofit:2.9.0'" retrofit-converter-simplexml = "com.squareup.retrofit2:converter-simplexml:2.9.0" fullscreenloadingdialog = "com.github.fahim44:FullScreenLoadingDialog:1.0.7" elib = "foundation.e:elib:0.0.1-alpha11" +yetanotheraccountchip = "com.github.fahim44:YetAnotherAccountChip:1.0.0" junit = "junit:junit:4.13.2" robolectric = "org.robolectric:robolectric:4.9.2"