diff --git a/.github/workflows/build_about.yml b/.github/workflows/build_about.yml index 28d1718..56a4c9b 100644 --- a/.github/workflows/build_about.yml +++ b/.github/workflows/build_about.yml @@ -11,6 +11,8 @@ on: paths: - about/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: diff --git a/.github/workflows/build_filepicker.yml b/.github/workflows/build_filepicker.yml index afca31e..ae5f693 100644 --- a/.github/workflows/build_filepicker.yml +++ b/.github/workflows/build_filepicker.yml @@ -11,6 +11,8 @@ on: paths: - filepicker/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: diff --git a/.github/workflows/build_folderstree.yml b/.github/workflows/build_folderstree.yml index 0a267d2..b68a0f4 100644 --- a/.github/workflows/build_folderstree.yml +++ b/.github/workflows/build_folderstree.yml @@ -11,6 +11,8 @@ on: paths: - folderstree/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: diff --git a/.github/workflows/build_sample.yml b/.github/workflows/build_sample.yml index d4551dc..cee6ba6 100644 --- a/.github/workflows/build_sample.yml +++ b/.github/workflows/build_sample.yml @@ -11,6 +11,8 @@ on: paths: - sample/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: diff --git a/.github/workflows/build_scorewidget.yml b/.github/workflows/build_scorewidget.yml index bdbc05f..563f2a7 100644 --- a/.github/workflows/build_scorewidget.yml +++ b/.github/workflows/build_scorewidget.yml @@ -10,6 +10,8 @@ on: paths: - scorewidget/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: diff --git a/.github/workflows/build_tagselector.yml b/.github/workflows/build_tagselector.yml index c1aba88..b4da755 100644 --- a/.github/workflows/build_tagselector.yml +++ b/.github/workflows/build_tagselector.yml @@ -10,6 +10,8 @@ on: paths: - tagselector/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} jobs: build: diff --git a/.github/workflows/build_utils.yml b/.github/workflows/build_utils.yml index 5b477bb..a76e660 100644 --- a/.github/workflows/build_utils.yml +++ b/.github/workflows/build_utils.yml @@ -10,6 +10,9 @@ on: paths: - utils/** +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: build: diff --git a/.github/workflows/release_about.yml b/.github/workflows/release_about.yml index 2e4963e..37a3fea 100644 --- a/.github/workflows/release_about.yml +++ b/.github/workflows/release_about.yml @@ -5,6 +5,9 @@ on: tags: - 'about*' +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: release: runs-on: ubuntu-latest @@ -23,6 +26,4 @@ jobs: - name: Publish about to Github uses: gradle/gradle-build-action@v2 with: - arguments: about:publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + arguments: about:publish \ No newline at end of file diff --git a/.github/workflows/release_filepicker.yml b/.github/workflows/release_filepicker.yml index 80140e6..92fddaa 100644 --- a/.github/workflows/release_filepicker.yml +++ b/.github/workflows/release_filepicker.yml @@ -5,6 +5,9 @@ on: tags: - 'filepicker*' +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: release: runs-on: ubuntu-latest @@ -23,6 +26,4 @@ jobs: - name: Publish filepicker to Github uses: gradle/gradle-build-action@v2 with: - arguments: filepicker:publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + arguments: filepicker:publish \ No newline at end of file diff --git a/.github/workflows/release_folderstree.yml b/.github/workflows/release_folderstree.yml index 19138b9..0ed0657 100644 --- a/.github/workflows/release_folderstree.yml +++ b/.github/workflows/release_folderstree.yml @@ -5,6 +5,9 @@ on: tags: - 'folderstree*' +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: release: runs-on: ubuntu-latest @@ -23,6 +26,4 @@ jobs: - name: Publish components to Github uses: gradle/gradle-build-action@v2 with: - arguments: folderstree:publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + arguments: folderstree:publish \ No newline at end of file diff --git a/.github/workflows/release_scorewidget.yml b/.github/workflows/release_scorewidget.yml index aaae9a9..9489dba 100644 --- a/.github/workflows/release_scorewidget.yml +++ b/.github/workflows/release_scorewidget.yml @@ -5,6 +5,9 @@ on: tags: - 'scorewidget*' +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: release: runs-on: ubuntu-latest @@ -23,6 +26,4 @@ jobs: - name: Publish components to Github uses: gradle/gradle-build-action@v2 with: - arguments: scorewidget:publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + arguments: scorewidget:publish \ No newline at end of file diff --git a/.github/workflows/release_tagselector.yml b/.github/workflows/release_tagselector.yml index bf90705..3bd5500 100644 --- a/.github/workflows/release_tagselector.yml +++ b/.github/workflows/release_tagselector.yml @@ -5,6 +5,9 @@ on: tags: - 'tagselector*' +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: release: runs-on: ubuntu-latest @@ -24,5 +27,3 @@ jobs: uses: gradle/gradle-build-action@v2 with: arguments: tagselector:publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release_utils.yml b/.github/workflows/release_utils.yml index 41435c3..fa4fe7d 100644 --- a/.github/workflows/release_utils.yml +++ b/.github/workflows/release_utils.yml @@ -5,6 +5,9 @@ on: tags: - 'utils*' +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + jobs: release: runs-on: ubuntu-latest @@ -23,6 +26,4 @@ jobs: - name: Publish components to Github uses: gradle/gradle-build-action@v2 with: - arguments: utils:publish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + arguments: utils:publish \ No newline at end of file diff --git a/about/src/main/java/dev/arkbuilders/components/about/presentation/ArkAbout.kt b/about/src/main/java/dev/arkbuilders/components/about/presentation/ArkAbout.kt index 73d5a1a..c4090e4 100644 --- a/about/src/main/java/dev/arkbuilders/components/about/presentation/ArkAbout.kt +++ b/about/src/main/java/dev/arkbuilders/components/about/presentation/ArkAbout.kt @@ -1,12 +1,19 @@ +@file:OptIn(ExperimentalLayoutApi::class) + package dev.arkbuilders.components.about.presentation import androidx.annotation.DrawableRes import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ExperimentalLayoutApi +import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll @@ -97,7 +104,7 @@ fun ArkAbout( ) Text( modifier = Modifier.padding(top = 12.dp), - text = "ARK Builders · Copyright ©2024", + text = stringResource(R.string.about_ark_builders_copyright), color = ArkColor.TextTertiary ) Row( @@ -164,7 +171,10 @@ fun ArkAbout( text = stringResource(R.string.about_we_greatly_appreciate_every_bit_of_support), color = ArkColor.TextTertiary ) - Row(modifier = Modifier.padding(top = 12.dp)) { + FlowRow( + modifier = Modifier.padding(top = 12.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { DonateBtn( modifier = Modifier, icon = painterResource(R.drawable.btc), @@ -173,14 +183,17 @@ fun ArkAbout( btcDialogVisible = true } DonateBtn( - modifier = Modifier.padding(start = 12.dp), + modifier = Modifier, icon = painterResource(R.drawable.eth), text = stringResource(R.string.about_donate_using_eth) ) { ethDialogVisible = true } } - Row(modifier = Modifier.padding(top = 12.dp)) { + FlowRow( + modifier = Modifier.padding(top = 12.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { DonateBtn( modifier = Modifier, icon = painterResource(R.drawable.ic_about_patreon), @@ -189,7 +202,7 @@ fun ArkAbout( ctx.openLink(ctx.getString(R.string.about_ark_patreon_url)) } DonateBtn( - modifier = Modifier.padding(start = 12.dp), + modifier = Modifier, icon = painterResource(R.drawable.ic_about_coffee), text = stringResource(R.string.about_buy_as_a_coffee) ) { @@ -201,7 +214,10 @@ fun ArkAbout( thickness = 1.dp, color = ArkColor.BorderSecondary ) - Row(modifier = Modifier.padding(top = 12.dp, bottom = 50.dp)) { + FlowRow( + modifier = Modifier.padding(top = 12.dp, bottom = 50.dp), + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { OutlinedButton( modifier = Modifier, onClick = { ctx.openLink(ctx.getString(R.string.ark_contribute_url)) }, @@ -221,7 +237,7 @@ fun ArkAbout( ) } OutlinedButton( - modifier = Modifier.padding(start = 12.dp), + modifier = Modifier, onClick = { }, border = BorderStroke( width = 1.dp, diff --git a/about/src/main/res/values-ru/strings.xml b/about/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000..2d82395 --- /dev/null +++ b/about/src/main/res/values-ru/strings.xml @@ -0,0 +1,23 @@ + + + О приложении + Политика конфиденциальности + Версия %1$s + Копировать + Упс! Что-то пошло не так + Скачать QR-код + Адрес кошелька скопирован! + "Отправьте нам ID транзакции по электронной почте " + " чтобы получить премиум-поддержку. Мы сделаем всё возможное, чтобы помочь вам с любыми проблемами, с которыми вы столкнётесь при использовании нашего программного обеспечения." + Пожертвовать Ethereum + Пожертвовать Bitcoin + Открыть GitHub Issues + Посмотреть открытые премии + Купить нам кофе + Подписаться на Patreon + Перевести ETH + Перевести BTC + Мы очень ценим любую вашу поддержку! + Вы можете поддержать нас + Сайт + \ No newline at end of file diff --git a/about/src/main/res/values/strings.xml b/about/src/main/res/values/strings.xml index 289883c..8913d83 100644 --- a/about/src/main/res/values/strings.xml +++ b/about/src/main/res/values/strings.xml @@ -5,18 +5,19 @@ Version %1$s Copy Oops! Something went wrong + © 2025 ARK Builders Download QR Image Wallet copied! - support@ark-builders.dev + support@ark-builders.dev "Send us the transaction id by email " " to receive premium support. We’ll make our best to help you with any issue you encounter while using our Software." - bc1qx8n9r4uwpgrhgnamt2uew53lmrxd8tuevp7lv5 - 0x9765C5aC38175BFbd2dC7a840b63e50762B80a1b + bc1qx8n9r4uwpgrhgnamt2uew53lmrxd8tuevp7lv5 + 0x9765C5aC38175BFbd2dC7a840b63e50762B80a1b Donate using Ethereum Donate using Bitcoin https://www.ark-builders.dev/ https://t.me/ark_builders - https://www.ark-builders.dev/contribute/?tab=goodFirstIssue + https://www.ark-builders.dev/contribute/?category=good+first+issue https://buymeacoffee.com/arkbuilders https://www.patreon.com/ARKBuilders https://discord.gg/tPUJTxud @@ -31,4 +32,4 @@ Website Telegram Discord - \ No newline at end of file + diff --git a/settings.gradle.kts b/settings.gradle.kts index b7b6b93..955230b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,5 @@ import java.net.URI +import java.util.Properties pluginManagement { repositories { @@ -16,11 +17,21 @@ dependencyResolutionManagement { url = URI("https://jitpack.io") } maven { + // Important note: + // To authenticate with GitHub Packages, you need to generate a fine-grained personal access token + // The token needs access only to [Public repositories] + // Add it as gpr.token=$token in local.properties file in the root of the project + // For more details, refer to the documentation: + // https://github.com/settings/personal-access-tokens/new + // https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#authenticating-with-a-personal-access-token + + val localProps = getLocalProps() + name = "GitHubPackages" url = URI("https://maven.pkg.github.com/ARK-Builders/arklib-android") credentials { username = "token" - password = "\u0037\u0066\u0066\u0036\u0030\u0039\u0033\u0066\u0032\u0037\u0033\u0036\u0033\u0037\u0064\u0036\u0037\u0066\u0038\u0030\u0034\u0039\u0062\u0030\u0039\u0038\u0039\u0038\u0066\u0034\u0066\u0034\u0031\u0064\u0062\u0033\u0064\u0033\u0038\u0065" + password = localProps.getProperty("gpr.token") ?: System.getenv("GITHUB_TOKEN") } } } @@ -32,6 +43,19 @@ dependencyResolutionManagement { } } +fun getLocalProps(): Properties { + val props = Properties() + val localPropsFile = File(rootDir, "local.properties") + + if (localPropsFile.exists()) { + localPropsFile.inputStream().use { stream -> + props.load(stream) + } + } + + return props +} + rootProject.name = "Ark Components" include(":scorewidget") include(":tagselector")