diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 61c5e2e3a51b03a05d441ce3147f18a95a14c984..62a91128103a7eb96e570dafcd6a93001db9a061 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,127 +1,162 @@ -image: registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest - -stages: - - debug - - release - -before_script: - - export GRADLE_USER_HOME=$(pwd)/.gradle - - chmod +x ./gradlew - - -# Debug build related jobs -buildDebug: - stage: debug - script: - - ./gradlew assembleDebug - artifacts: - paths: - - app/build/outputs/apk/debug/ - -test: - allow_failure: true - stage: debug - script: - - ./gradlew test -PtestAccountName="$testAccountName" -PtestAccountPwd="$testAccountPwd" -PtestServerUrl="$testServerUrl" - artifacts: - when: always - paths: - - app/build/test-results/*/TEST-*.xml - - app/build/reports/tests/* - reports: - junit: app/build/test-results/*/TEST-*.xml - -# Default lint configuration for debug builds -# Manual as we don't want to run them generally for debug builds -.lintDebugDefault: - stage: debug - when: manual - allow_failure: true - -lintDebug: - extends: .lintDebugDefault - script: - - ./gradlew lintDebug - artifacts: - paths: - - app/build/reports/ - -ktlintDebug: - extends: .lintDebugDefault - script: - - ./gradlew app:ktlintCheck --info - artifacts: - paths: - - app/build/reports/ktlint/ - -# Release build related jobs - -# Default configuration for release builds -# Only on "master", "merge_request_event" and protected branches -buildRelease: - stage: release - allow_failure: false - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - when: always - - if: '$CI_COMMIT_REF_PROTECTED == "true"' - when: always - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: always - script: - - ./gradlew assembleRelease - artifacts: - paths: - - app/build/outputs/apk/release/ - -# Release jobs to generate signed artifacts -.releaseSigned: - stage: release - allow_failure: false - before_script: - - export GRADLE_USER_HOME=$(pwd)/.gradle - - chmod +x ./gradlew - - echo "${KEYSTORE}" | base64 -d > keystore/proprietary.keystore - rules: - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' - when: always - - if: '$CI_COMMIT_REF_PROTECTED == "true"' - when: always - -buildReleaseDev: - extends: .releaseSigned - script: - - ./gradlew assembleReleaseDev - artifacts: - paths: - - app/build/outputs/apk/releaseDev/ - -buildReleaseStable: - extends: .releaseSigned - script: - - ./gradlew assembleReleaseStable - artifacts: - paths: - - app/build/outputs/apk/releaseStable/ - -# Default lint configuration for release jobs -.lintReleaseDefault: - stage: release - when: always - allow_failure: false - -lintRelease: - extends: .lintReleaseDefault - script: - - ./gradlew lintRelease - artifacts: - paths: - - app/build/reports/ - -ktlintRelease: - extends: .lintReleaseDefault - script: - - ./gradlew app:ktlintCheck --info - artifacts: - paths: - - app/build/reports/ktlint/ +image: registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:55-workshop-auto-release + +stages: + - debug + - release + - publish + +before_script: + - export GRADLE_USER_HOME=$(pwd)/.gradle + - chmod +x ./gradlew + +# Debug build related jobs +buildDebug: + stage: debug + script: + - ./gradlew assembleDebug + artifacts: + paths: + - app/build/outputs/apk/debug/ + +test: + allow_failure: true + stage: debug + script: + - ./gradlew test -PtestAccountName="$testAccountName" -PtestAccountPwd="$testAccountPwd" -PtestServerUrl="$testServerUrl" + artifacts: + when: always + paths: + - app/build/test-results/*/TEST-*.xml + - app/build/reports/tests/* + reports: + junit: app/build/test-results/*/TEST-*.xml + +# Default lint configuration for debug builds +# Manual as we don't want to run them generally for debug builds +.lintDebugDefault: + stage: debug + when: manual + allow_failure: true + +lintDebug: + extends: .lintDebugDefault + script: + - ./gradlew lintDebug + artifacts: + paths: + - app/build/reports/ + +ktlintDebug: + extends: .lintDebugDefault + script: + - ./gradlew app:ktlintCheck --info + artifacts: + paths: + - app/build/reports/ktlint/ + +# Release build related jobs + +# Default configuration for release builds +# Only on "master", "merge_request_event" and protected branches +buildRelease: + stage: release + allow_failure: false + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: always + - if: '$CI_COMMIT_REF_PROTECTED == "true"' + when: always + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + when: always + script: + - ./gradlew assembleRelease + artifacts: + paths: + - app/build/outputs/apk/release/ + +# Release jobs to generate signed artifacts +.releaseSigned: + stage: release + allow_failure: false + before_script: + - export GRADLE_USER_HOME=$(pwd)/.gradle + - chmod +x ./gradlew + - echo "${KEYSTORE}" | base64 -d > keystore/proprietary.keystore + rules: + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + when: always + - if: '$CI_COMMIT_REF_PROTECTED == "true"' + when: always + +buildReleaseDev: + extends: .releaseSigned + script: + - ./gradlew assembleReleaseDev + artifacts: + paths: + - app/build/outputs/apk/releaseDev/ + +buildReleaseStable: + extends: .releaseSigned + script: + - ./gradlew assembleReleaseStable + artifacts: + paths: + - app/build/outputs/apk/releaseStable/ + +# Default lint configuration for release jobs +.lintReleaseDefault: + stage: release + when: always + allow_failure: false + +lintRelease: + extends: .lintReleaseDefault + script: + - ./gradlew lintRelease + artifacts: + paths: + - app/build/reports/ + +ktlintRelease: + extends: .lintReleaseDefault + script: + - ./gradlew app:ktlintCheck --info + artifacts: + paths: + - app/build/reports/ktlint/ + + +pushToPrebuilt: + stage: publish + needs: ["buildRelease"] + when: manual + variables: + NEW_APK_PATH: "app/build/outputs/apk/release/" + before_script: + - 'which ssh-agent || ( apt update -y && apt install openssh-client -y )' + - eval $(ssh-agent -s) + - echo "$SSH_E_ROBOT_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + - git config user.email "gitlab@e.foundation" + - git config user.name "gitlab" + script: + - NEW_APK_NAME=$(basename ${NEW_APK_PATH}*-release.apk) + - NEW_APK_VERSION=$(awk -F '-' '{print $2}' <<< "$NEW_APK_NAME") + - echo $NEW_APK_NAME + - echo $NEW_APK_VERSION + - git lfs clone git@gitlab.e.foundation:e/os/android_prebuilts_prebuiltapks_lfs.git + - cd android_prebuilts_prebuiltapks_lfs + - rm Apps/*-release.apk + - mv ../${NEW_APK_PATH}/${NEW_APK_NAME} Apps/ + # todo: improve to replace sed command, by a new one based on REGEXP (instead of using line number) + - sed -i "6s/.*/LOCAL_SRC_FILES := ${NEW_APK_NAME}/" Apps/Android.mk + - git add Apps + - git status + - git commit -m "Update Apps Lounge apk to ${NEW_APK_VERSION}\nFrom ${CI_COMMIT_SHA}" + - git push + # Sometimes a single push doesn't do all the job, so we have to push twice + - git push \ No newline at end of file diff --git a/app/src/main/java/foundation/e/apps/MainActivity.kt b/app/src/main/java/foundation/e/apps/MainActivity.kt index 06c5a2b041197bd7a1e9386f56bdfc9e43a3d329..2b5c869551c5245baae4c589c569ad81176d2927 100644 --- a/app/src/main/java/foundation/e/apps/MainActivity.kt +++ b/app/src/main/java/foundation/e/apps/MainActivity.kt @@ -73,7 +73,7 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt b/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt index 564e6263177a3cfccf9fcf8052d856e9214049b7..35d71d0889653d5b6fa8f9a1b7e2442817225e7a 100644 --- a/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt +++ b/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt @@ -1042,7 +1042,7 @@ class FusedAPIImpl @Inject constructor( app: Category ) { category.drawable = - getCategoryIconResource(app.type, getCategoryIconName(category)) + getCategoryIconResource(getCategoryIconName(category)) } private fun getCategoryIconName(category: FusedCategory): String { @@ -1099,17 +1099,13 @@ class FusedAPIImpl @Inject constructor( return FusedCategory( id = category, title = getCategoryTitle(category, categories), - drawable = getCategoryIconResource(appType, category), + drawable = getCategoryIconResource(category), tag = tag ) } - private fun getCategoryIconResource(appType: Category.Type, category: String): Int { - return if (appType == Category.Type.APPLICATION) { - CategoryUtils.provideAppsCategoryIconResource(category) - } else { - CategoryUtils.provideGamesCategoryIconResource(category) - } + private fun getCategoryIconResource(category: String): Int { + return CategoryUtils.provideAppsCategoryIconResource(category) } private fun getCategoryTitle(category: String, categories: Categories): String { diff --git a/app/src/main/java/foundation/e/apps/api/fused/utils/CategoryUtils.kt b/app/src/main/java/foundation/e/apps/api/fused/utils/CategoryUtils.kt index f3dfe82affccb80da532aae3e0114addf8dc552d..c6048a94a243307295f5a5e35f140584cba2f982 100644 --- a/app/src/main/java/foundation/e/apps/api/fused/utils/CategoryUtils.kt +++ b/app/src/main/java/foundation/e/apps/api/fused/utils/CategoryUtils.kt @@ -175,47 +175,4 @@ object CategoryUtils { R.drawable.ic_cat_default } } - - fun provideGamesCategoryIconResource(categoryId: String): Int { - return when (categoryId) { - "action" -> - R.drawable.ic_action - "adventure" -> - R.drawable.ic_adventure - "arcade" -> - R.drawable.ic_arcade - "board" -> - R.drawable.ic_board - "card" -> - R.drawable.ic_card - "casino" -> - R.drawable.ic_casino - "casual" -> - R.drawable.ic_casual - "educational" -> - R.drawable.ic_educational - "music" -> - R.drawable.ic_music - "game_open_games", "web_games" -> - R.drawable.ic_arcade - "puzzle" -> - R.drawable.ic_puzzle - "racing" -> - R.drawable.ic_racing - "role_playing" -> - R.drawable.ic_role_playing - "simulation" -> - R.drawable.ic_simulation - "sports" -> - R.drawable.ic_sports - "strategy" -> - R.drawable.ic_strategy - "trivia" -> - R.drawable.ic_trivia - "word" -> - R.drawable.ic_word - else -> - R.drawable.ic_cat_default - } - } } diff --git a/app/src/main/res/drawable-nodpi/ic_cat_open_games.png b/app/src/main/res/drawable-nodpi/ic_cat_open_games.png deleted file mode 100644 index 3796c8db67074825b51f50d0730043cb7a0831e9..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-nodpi/ic_cat_open_games.png and /dev/null differ diff --git a/app/src/main/res/drawable/ic_action.xml b/app/src/main/res/drawable/ic_action.xml deleted file mode 100644 index 6d712298d84fc39ecce3753edf28794257e9bd8b..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_action.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_adventure.xml b/app/src/main/res/drawable/ic_adventure.xml deleted file mode 100644 index e0519402889c822d1e04986ecd0ecc06a36a525e..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_adventure.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_arcade.xml b/app/src/main/res/drawable/ic_arcade.xml deleted file mode 100644 index 2a27b05d2bcda2dc003f4aaaad282ddd303cfa6c..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_arcade.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_board.xml b/app/src/main/res/drawable/ic_board.xml deleted file mode 100644 index 6cfa934fdc0c95676857a314fdb0bd7b2077a610..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_board.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_books_and_reference.xml b/app/src/main/res/drawable/ic_books_and_reference.xml index 509e4be85e0cc4ecbe4c32a2c87d9d73b9e33d1a..8b50add71bbcbed230adb25be99413ea65ce3511 100644 --- a/app/src/main/res/drawable/ic_books_and_reference.xml +++ b/app/src/main/res/drawable/ic_books_and_reference.xml @@ -7,16 +7,16 @@ diff --git a/app/src/main/res/drawable/ic_card.xml b/app/src/main/res/drawable/ic_card.xml deleted file mode 100644 index 7a236aced6c986f2eb5094c5ab68fb99b6895cb5..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_card.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/ic_casino.xml b/app/src/main/res/drawable/ic_casino.xml deleted file mode 100644 index d113de9ca12995c0ad37f3b5b26fea9c597214a0..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_casino.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_casual.xml b/app/src/main/res/drawable/ic_casual.xml deleted file mode 100644 index 6ae3bb93c624ac585ecd5bf403d0392f90f1d778..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_casual.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_cat_connectivity.xml b/app/src/main/res/drawable/ic_cat_connectivity.xml index 0a777dae6460bfba3c1f0e59adf9ed3c8ad6726e..3f98643aba59b93693cced698b51d905714ad064 100644 --- a/app/src/main/res/drawable/ic_cat_connectivity.xml +++ b/app/src/main/res/drawable/ic_cat_connectivity.xml @@ -5,8 +5,8 @@ android:viewportHeight="32"> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_default.xml b/app/src/main/res/drawable/ic_cat_default.xml index be76fbd84aec91ab21c3e5c3268b83428bdd5856..9d61ffbf739c032f42a2c8ae417aa354a3fccfd9 100644 --- a/app/src/main/res/drawable/ic_cat_default.xml +++ b/app/src/main/res/drawable/ic_cat_default.xml @@ -8,18 +8,18 @@ android:pathData="M4.2733,4.3286h24.5429v23.3429h-24.5429z"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_development.xml b/app/src/main/res/drawable/ic_cat_development.xml index 784ba4d3116517a5103cde527970125b0e03f9fe..8d4241960ed43a9096423fb592686a5fc372ccf9 100644 --- a/app/src/main/res/drawable/ic_cat_development.xml +++ b/app/src/main/res/drawable/ic_cat_development.xml @@ -8,12 +8,12 @@ android:pathData="M2.6607,4.5857h28.3143v22.8286h-28.3143z"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_graphics.xml b/app/src/main/res/drawable/ic_cat_graphics.xml index 9939374666902f2a6d827433e40a44f811d7071c..79795ac3566de3fcdbbf7465d90f564f58c423fc 100644 --- a/app/src/main/res/drawable/ic_cat_graphics.xml +++ b/app/src/main/res/drawable/ic_cat_graphics.xml @@ -5,5 +5,5 @@ android:viewportHeight="32"> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_health_and_fitness.xml b/app/src/main/res/drawable/ic_cat_health_and_fitness.xml index 12198be030f2561b8075a9fc4fc05801b4534862..238a4e04883aeccd90d22493832120eca10e07e8 100644 --- a/app/src/main/res/drawable/ic_cat_health_and_fitness.xml +++ b/app/src/main/res/drawable/ic_cat_health_and_fitness.xml @@ -5,5 +5,5 @@ android:viewportHeight="32"> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_house_and_home.xml b/app/src/main/res/drawable/ic_cat_house_and_home.xml index 8e429cfff53509e0bae8f63a7ffd5404f976abd2..f6328b46d9c9c55e1625a93a1276da8baade30f5 100644 --- a/app/src/main/res/drawable/ic_cat_house_and_home.xml +++ b/app/src/main/res/drawable/ic_cat_house_and_home.xml @@ -8,15 +8,15 @@ android:pathData="M2.0018,2.5715h29.0857v26.8571h-29.0857z"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_internet.xml b/app/src/main/res/drawable/ic_cat_internet.xml index d110f3d342eff7eddd16d03fce6434aee8d112a1..5c170f2079374680be6a210fb40bd4f5b4aab195 100644 --- a/app/src/main/res/drawable/ic_cat_internet.xml +++ b/app/src/main/res/drawable/ic_cat_internet.xml @@ -5,5 +5,5 @@ android:viewportHeight="32"> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_open_games.xml b/app/src/main/res/drawable/ic_cat_open_games.xml new file mode 100644 index 0000000000000000000000000000000000000000..9de037472a612ab9a743be54221be017fe82b33f --- /dev/null +++ b/app/src/main/res/drawable/ic_cat_open_games.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_cat_security.xml b/app/src/main/res/drawable/ic_cat_security.xml index e17f9e6f2e8d6531c021cf44c5af5da3be1de6a3..67700eb0696b954f11f1e0df76c069797ce2ddcf 100644 --- a/app/src/main/res/drawable/ic_cat_security.xml +++ b/app/src/main/res/drawable/ic_cat_security.xml @@ -8,8 +8,8 @@ android:strokeLineJoin="round" android:strokeWidth="2.1" android:fillColor="#00000000" - android:strokeColor="#0088ED"/> + android:strokeColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_cat_system.xml b/app/src/main/res/drawable/ic_cat_system.xml index bdd9b11aed2ad72f4804b20467db8a9fda8b7d7e..64330895a0f08eae33781d3b09dcc03ed05ce233 100644 --- a/app/src/main/res/drawable/ic_cat_system.xml +++ b/app/src/main/res/drawable/ic_cat_system.xml @@ -5,8 +5,8 @@ android:viewportHeight="32"> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_educational.xml b/app/src/main/res/drawable/ic_educational.xml deleted file mode 100644 index a71f9aeb088f0dba0c47358f7502409689b8418f..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_educational.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_music.xml b/app/src/main/res/drawable/ic_music.xml deleted file mode 100644 index 0182d3809ac622696b94daae10eb668a0135a512..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_music.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_puzzle.xml b/app/src/main/res/drawable/ic_puzzle.xml deleted file mode 100644 index cc67464bda2a4c74838f50090188345a1c7855a1..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_puzzle.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/ic_racing.xml b/app/src/main/res/drawable/ic_racing.xml deleted file mode 100644 index 791995868863d350c5006f353cc19c44c9757331..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_racing.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_role_playing.xml b/app/src/main/res/drawable/ic_role_playing.xml deleted file mode 100644 index 665e4eea26476655f2cdb5e4991f433c84c0e56c..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_role_playing.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_simulation.xml b/app/src/main/res/drawable/ic_simulation.xml deleted file mode 100644 index f3cafa0a72642b863a85cb82f6c11eb203da7a17..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_simulation.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/ic_sports.xml b/app/src/main/res/drawable/ic_sports.xml deleted file mode 100644 index 1aaf48c005d5bc7a7489d86953224e12c6539e48..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_sports.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_strategy.xml b/app/src/main/res/drawable/ic_strategy.xml deleted file mode 100644 index e65de1166dcabe0ecabf065cbe197b9c9c75e362..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_strategy.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_trivia.xml b/app/src/main/res/drawable/ic_trivia.xml deleted file mode 100644 index 8981888f3c67983025e7a2314d8183a6921d9aec..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_trivia.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/ic_watch_apps.xml b/app/src/main/res/drawable/ic_watch_apps.xml index 9e2dcfdc4233bd630a58a22f38e2e3f323756d3f..1b37296697d4776f47b4b7cf8ea617655aa6ab38 100644 --- a/app/src/main/res/drawable/ic_watch_apps.xml +++ b/app/src/main/res/drawable/ic_watch_apps.xml @@ -5,23 +5,23 @@ android:viewportHeight="33"> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> + android:fillColor="@color/colorAccent"/> diff --git a/app/src/main/res/drawable/ic_watchface.xml b/app/src/main/res/drawable/ic_watchface.xml index 63d7df34fa5cc23c03dbcff16491f36d12558fb1..587de7688bae88888e3366433cb9d8a0842acd1b 100644 --- a/app/src/main/res/drawable/ic_watchface.xml +++ b/app/src/main/res/drawable/ic_watchface.xml @@ -1,7 +1,7 @@ - - - - + + + + diff --git a/app/src/main/res/drawable/ic_word.xml b/app/src/main/res/drawable/ic_word.xml deleted file mode 100644 index 9730837ac84bb0ec84cb6c81444bab0d4612fec3..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable/ic_word.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/layout/categories_list_item.xml b/app/src/main/res/layout/categories_list_item.xml index 6fe8bb8acb4d2743bd08d6cc9eea91c4a6d0ea6b..7e8daca7cf982f584b0ddf83cf104debfd2abaf4 100644 --- a/app/src/main/res/layout/categories_list_item.xml +++ b/app/src/main/res/layout/categories_list_item.xml @@ -18,6 +18,7 @@ - + android:layout_height="wrap_content" + android:orientation="horizontal"> + android:scaleType="fitXY" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - + android:textSize="16sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toRightOf="@+id/categoryIcon" + app:layout_constraintRight_toLeftOf="@+id/categoryTag" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="@string/open_source" + /> - + \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index a2920a2c473473a9ad8783e741f4bc766d5b5fdb..82d7d8c790960c353640e7d0499cddd17eb1cab5 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -84,4 +84,18 @@ Оновлення Пошук Оновлення не вдалося. Автоматичні повторні спроби уже в процесі. + Трендові додатки в Топі + Безкоштовні ігри в Топі + Дослідити PWA + Дослідити + + %1$d оновлення додатку доступне + %1$d оновлень додатків доступно + %1$d оновлень додатків доступно + %1$d оновлень додатків доступно + + Неможливо відобразити додаток Google Play коли дозволені тільки додатки з відкритим кодом. + Оновлено до: %1$s + Рейтинг Приватності автоматично обчислений з дозволів та трекерів, що були знайдені в додатку.<br /><br /> Його алгоритм обчислення можна <a href=%1$s>побачити тут</a>.<br /><br />Виявлення трекерів робиться за допомогою<a href=%2$s> Інструментів Exodus Privacy</a>.<br /><br />Рейтинг від 0 до 10.<br /><br />Дізнайтесь більше про те, як обчислюється Рейтинг Приватності, які в нього є обмеження та як він може допомогти Вам захистити себе від мікротаргетингу <a href=%3$s>на цій сторінці</a>. + Закрити \ No newline at end of file diff --git a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt index 2ced7456ac689a062238894348e22aefde06f4d8..ac6c7281d654b2bdc23352173ccf01a72020bed6 100644 --- a/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt +++ b/app/src/test/java/foundation/e/apps/FusedApiImplTest.kt @@ -124,12 +124,14 @@ class FusedApiImplTest { status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo" - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -156,12 +158,14 @@ class FusedApiImplTest { status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo" - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -175,12 +179,14 @@ class FusedApiImplTest { status = Status.UNAVAILABLE, name = "Demo One", package_name = "foundation.e.demoone" - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo" - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -201,13 +207,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -242,13 +250,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -283,13 +293,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -324,13 +336,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.INSTALLED, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -346,13 +360,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -608,7 +624,7 @@ class FusedApiImplTest { val categoryListResponse = fusedAPIImpl.getCategoriesList(Category.Type.APPLICATION, AUTH_DATA) - + assertEquals("getCategory", 3, categoryListResponse.first.size) } @@ -719,13 +735,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three", @@ -806,13 +824,15 @@ class FusedApiImplTest { name = "Demo One", package_name = "foundation.e.demoone", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "112", status = Status.UNAVAILABLE, name = "Demo Two", package_name = "foundation.e.demotwo", latest_version_code = 123 - ), FusedApp( + ), + FusedApp( _id = "113", status = Status.UNAVAILABLE, name = "Demo Three",