From 071e2ea798918c9937a153f9b411f0f108408790 Mon Sep 17 00:00:00 2001 From: Rafael Date: Mon, 30 Sep 2024 13:51:21 +0600 Subject: [PATCH] Add ivfun launcher icons --- app/src/main/AndroidManifest.xml | 64 +++ .../settings/appearance/AppIconService.kt | 4 +- .../settings/appearance/AppearanceFragment.kt | 89 +--- .../settings/appearance/AppearanceModule.kt | 4 +- .../res/drawable/launcher_duck_foreground.xml | 426 ++++++++++++++++++ .../res/drawable/launcher_duck_preview.xml | 421 +++++++++++++++++ .../drawable/launcher_ivfun_foreground.xml | 363 +++++++++++++++ .../res/drawable/launcher_ivfun_preview.xml | 358 +++++++++++++++ .../res/mipmap-anydpi-v26/launcher_duck.xml | 5 + .../res/mipmap-anydpi-v26/launcher_ivfun.xml | 5 + .../res/values/launcher_duck_background.xml | 4 + .../res/values/launcher_ivfun_background.xml | 4 + 12 files changed, 1670 insertions(+), 77 deletions(-) create mode 100644 app/src/main/res/drawable/launcher_duck_foreground.xml create mode 100644 app/src/main/res/drawable/launcher_duck_preview.xml create mode 100644 app/src/main/res/drawable/launcher_ivfun_foreground.xml create mode 100644 app/src/main/res/drawable/launcher_ivfun_preview.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/launcher_duck.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/launcher_ivfun.xml create mode 100644 app/src/main/res/values/launcher_duck_background.xml create mode 100644 app/src/main/res/values/launcher_ivfun_background.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b671a4a0c4b..95bc213110f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -357,6 +357,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppIconService.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppIconService.kt index 433b9cf4917..3112cece4d1 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppIconService.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppIconService.kt @@ -10,7 +10,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update class AppIconService(private val localStorage: ILocalStorage) { - private val appIcons by lazy { AppIcon.values().asList() } + private val appIcons by lazy { AppIcon.entries } private val _optionsFlow = MutableStateFlow( Select(localStorage.appIcon ?: AppIcon.Main, appIcons) @@ -27,7 +27,7 @@ class AppIconService(private val localStorage: ILocalStorage) { val enabled = PackageManager.COMPONENT_ENABLED_STATE_ENABLED val disabled = PackageManager.COMPONENT_ENABLED_STATE_DISABLED - AppIcon.values().forEach { item -> + AppIcon.entries.forEach { item -> App.instance.packageManager.setComponentEnabledSetting( ComponentName(App.instance, item.launcherName), if (appIcon == item) enabled else disabled, diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceFragment.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceFragment.kt index d6ccb2e4828..bc00b1dc6a6 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceFragment.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceFragment.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -47,15 +46,12 @@ import io.horizontalsystems.bankwallet.ui.compose.ComposeAppTheme import io.horizontalsystems.bankwallet.ui.compose.Select import io.horizontalsystems.bankwallet.ui.compose.components.AlertGroup import io.horizontalsystems.bankwallet.ui.compose.components.AppBar -import io.horizontalsystems.bankwallet.ui.compose.components.B2 import io.horizontalsystems.bankwallet.ui.compose.components.ButtonPrimaryTransparent import io.horizontalsystems.bankwallet.ui.compose.components.ButtonPrimaryYellow import io.horizontalsystems.bankwallet.ui.compose.components.CellUniversalLawrenceSection -import io.horizontalsystems.bankwallet.ui.compose.components.D1 import io.horizontalsystems.bankwallet.ui.compose.components.HeaderText import io.horizontalsystems.bankwallet.ui.compose.components.HsBackButton import io.horizontalsystems.bankwallet.ui.compose.components.HsSwitch -import io.horizontalsystems.bankwallet.ui.compose.components.MultitextM1 import io.horizontalsystems.bankwallet.ui.compose.components.RowUniversal import io.horizontalsystems.bankwallet.ui.compose.components.TextImportantWarning import io.horizontalsystems.bankwallet.ui.compose.components.VSpacer @@ -323,12 +319,13 @@ private fun AppIconSection(appIconOptions: Select, onAppIconSelect: (Ap AppIconsRow(rows[0], appIconOptions.selected, onAppIconSelect) AppIconsRow(rows[1], appIconOptions.selected, onAppIconSelect) AppIconsRow(rows[2], appIconOptions.selected, onAppIconSelect) + AppIconsRow(rows[3], appIconOptions.selected, onAppIconSelect) } } @Composable private fun AppIconsRow( - chunk: List, + chunk: List, selected: AppIcon, onAppIconSelect: (AppIcon) -> Unit ) { @@ -338,21 +335,19 @@ private fun AppIconsRow( .padding(horizontal = 14.dp), horizontalArrangement = Arrangement.SpaceBetween ) { - IconBox( - chunk[0].icon, - chunk[0].title.getString(), - chunk[0] == selected, - ) { onAppIconSelect(chunk[0]) } - IconBox( - chunk[1].icon, - chunk[1].title.getString(), - chunk[1] == selected, - ) { onAppIconSelect(chunk[1]) } - IconBox( - chunk[2].icon, - chunk[2].title.getString(), - chunk[2] == selected - ) { onAppIconSelect(chunk[2]) } + for (i in 0 until 3) { + val appIcon = chunk.getOrNull(i) + if (appIcon != null) { + IconBox( + appIcon.icon, + appIcon.title.getString(), + appIcon == selected + ) { onAppIconSelect(appIcon) } + } else { + // Invisible element to preserve space + Spacer(modifier = Modifier.size(60.dp)) + } + } } } @@ -390,60 +385,6 @@ private fun IconBox( } -@Composable -private fun RowMultilineSelect( - title: String, - subtitle: String, - selected: Boolean, - onClick: () -> Unit -) { - RowUniversal( - modifier = Modifier.padding(horizontal = 16.dp), - onClick = onClick - ) { - MultitextM1( - title = { B2(text = title) }, - subtitle = { D1(text = subtitle) } - ) - Spacer(modifier = Modifier.weight(1f)) - if (selected) { - Image( - painter = painterResource(id = R.drawable.ic_checkmark_20), - contentDescription = null, - colorFilter = ColorFilter.tint(ComposeAppTheme.colors.jacob) - ) - } - } -} - -@Composable -fun RowSelect( - imageContent: @Composable RowScope.() -> Unit, - text: String, - selected: Boolean, - onClick: () -> Unit -) { - RowUniversal( - modifier = Modifier.padding(horizontal = 16.dp), - onClick = onClick - ) { - imageContent.invoke(this) - body_leah( - text = text, - modifier = Modifier - .weight(1f) - .padding(horizontal = 16.dp) - ) - if (selected) { - Image( - painter = painterResource(id = R.drawable.ic_checkmark_20), - contentDescription = null, - colorFilter = ColorFilter.tint(ComposeAppTheme.colors.jacob) - ) - } - } -} - @Composable fun MenuItemWithDialog( @StringRes title: Int, diff --git a/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceModule.kt b/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceModule.kt index b7f8fe3f8ed..ee7748fdd15 100644 --- a/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceModule.kt +++ b/app/src/main/java/io/horizontalsystems/bankwallet/modules/settings/appearance/AppearanceModule.kt @@ -38,7 +38,9 @@ enum class AppIcon(val icon: Int, val titleText: String) : WithTranslatableTitle Yak(R.drawable.launcher_yak_preview, "Yak"), Punk(R.drawable.launcher_punk_preview, "Punk"), Ape(R.drawable.launcher_ape_preview, "#1874"), - Ball8(R.drawable.launcher_8ball_preview, "8ball"); + Ball8(R.drawable.launcher_8ball_preview, "8ball"), + Ivfun(R.drawable.launcher_ivfun_preview, "Ivfun"), + Duck(R.drawable.launcher_duck_preview, "Duck"); override val title: TranslatableString get() = TranslatableString.PlainString(titleText) diff --git a/app/src/main/res/drawable/launcher_duck_foreground.xml b/app/src/main/res/drawable/launcher_duck_foreground.xml new file mode 100644 index 00000000000..72e25142783 --- /dev/null +++ b/app/src/main/res/drawable/launcher_duck_foreground.xml @@ -0,0 +1,426 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/launcher_duck_preview.xml b/app/src/main/res/drawable/launcher_duck_preview.xml new file mode 100644 index 00000000000..6f38a27ede4 --- /dev/null +++ b/app/src/main/res/drawable/launcher_duck_preview.xml @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/launcher_ivfun_foreground.xml b/app/src/main/res/drawable/launcher_ivfun_foreground.xml new file mode 100644 index 00000000000..a07ab8992af --- /dev/null +++ b/app/src/main/res/drawable/launcher_ivfun_foreground.xml @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/launcher_ivfun_preview.xml b/app/src/main/res/drawable/launcher_ivfun_preview.xml new file mode 100644 index 00000000000..424cfd637d3 --- /dev/null +++ b/app/src/main/res/drawable/launcher_ivfun_preview.xml @@ -0,0 +1,358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/launcher_duck.xml b/app/src/main/res/mipmap-anydpi-v26/launcher_duck.xml new file mode 100644 index 00000000000..6d38f53d2a4 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/launcher_duck.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/launcher_ivfun.xml b/app/src/main/res/mipmap-anydpi-v26/launcher_ivfun.xml new file mode 100644 index 00000000000..53c1f17b6a3 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/launcher_ivfun.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/launcher_duck_background.xml b/app/src/main/res/values/launcher_duck_background.xml new file mode 100644 index 00000000000..0ac2789c90f --- /dev/null +++ b/app/src/main/res/values/launcher_duck_background.xml @@ -0,0 +1,4 @@ + + + #000000 + \ No newline at end of file diff --git a/app/src/main/res/values/launcher_ivfun_background.xml b/app/src/main/res/values/launcher_ivfun_background.xml new file mode 100644 index 00000000000..afaedca62c6 --- /dev/null +++ b/app/src/main/res/values/launcher_ivfun_background.xml @@ -0,0 +1,4 @@ + + + #000000 + \ No newline at end of file