diff --git a/.github/workflows/BuildDebug.yml b/.github/workflows/BuildDebug.yml new file mode 100644 index 0000000000..990eb34d6d --- /dev/null +++ b/.github/workflows/BuildDebug.yml @@ -0,0 +1,59 @@ +name: Build Debug APK + +on: + workflow_dispatch: + +jobs: + build: + name: Build Arcticons APK + runs-on: ubuntu-latest + + steps: + - name: Checking out branch + uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 21 + cache: gradle + - name: Write sign info + if: github.repository_owner == 'Donnnno' + run: | + if [ ! -z "${{ secrets.KEYSTORE }}" ]; then + echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> keystore.properties + echo keyAlias='${{ secrets.KEY_ALIAS }}' >> keystore.properties + echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> keystore.properties + echo storeFile='${{ github.workspace }}/key.jks' >> keystore.properties + echo ${{ secrets.KEYSTORE }} | base64 --decode > ${{ github.workspace }}/key.jks + fi + - name: Get Gradle + run: gradle wrapper + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Lint Checks + run: | + gradle app:lintNormalDebug + gradle app:lintBlackDebug + gradle app:lintDayNightDebug + gradle app:lintYouDebug + - name: Build debug APK + run: ./gradlew app:assembleDebug + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + path: | + app/build/outputs/apk/black/debug/*.apk + app/build/outputs/apk/blackPlay/debug/*.apk + app/build/outputs/apk/dayNight/debug/*.apk + app/build/outputs/apk/normal/debug/*.apk + app/build/outputs/apk/normalPlay/debug/*.apk + app/build/outputs/apk/you/debug/*.apk + app/build/outputs/apk/youPlay/debug/*.apk + app/build/reports/* + + + + + \ No newline at end of file diff --git a/.github/workflows/BuildRelease.yml b/.github/workflows/BuildRelease.yml new file mode 100644 index 0000000000..f05b330a5a --- /dev/null +++ b/.github/workflows/BuildRelease.yml @@ -0,0 +1,62 @@ +name: Build Release + +on: + release: + types: [published] + push: + tags: + - "*" + +jobs: + build: + name: Build Arcticons APK + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + steps: + - name: Checking out branch + uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: 21 + cache: gradle + - name: Write sign info + if: github.repository_owner == 'Donnnno' + run: | + if [ ! -z "${{ secrets.KEYSTORE }}" ]; then + echo storePassword='${{ secrets.KEYSTORE_PASSWORD }}' >> keystore.properties + echo keyAlias='${{ secrets.KEY_ALIAS }}' >> keystore.properties + echo keyPassword='${{ secrets.KEY_PASSWORD }}' >> keystore.properties + echo storeFile='${{ github.workspace }}/key.jks' >> keystore.properties + echo ${{ secrets.KEYSTORE }} | base64 --decode > ${{ github.workspace }}/key.jks + fi + - name: Get Gradle + run: gradle wrapper + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build Normal APK + run: ./gradlew app:assemblenormalRelease + - name: Build Black APK + run: ./gradlew app:assembleblackRelease + - name: Build You APK + run: ./gradlew app:assembleyouRelease + - name: Build Day&Night + run: ./gradlew app:assembledayNightRelease + + - name: Get Release Notes + id: image + run: | + name=$(< ./generated/releaseName.txt) + name=$(echo $name | tr '\n' ' ') + image="![releaseImage](https://github.com/Arcticons-Team/Arcticons/blob/$GITHUB_REF_NAME/generated/releaseImage.jpg)" + changelog=$(< ./generated/changelog.md) + changelog="$changelog + + $image" + gh release create $GITHUB_REF_NAME --generate-notes --title "$name" --notes "$changelog" --discussion-category "Announcements" app/build/outputs/apk/normal/release/*.apk app/build/outputs/apk/black/release/*.apk app/build/outputs/apk/dayNight/release/*.apk app/build/outputs/apk/you/release/*.apk + env: + GH_TOKEN: ${{ github.token }} + + + \ No newline at end of file diff --git a/.gitignore b/.gitignore index c445568dfe..ce86a44f56 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *.dex *.pro *.yml +*.jks *~ bin/ @@ -37,3 +38,6 @@ bundletool.jar .keystore/arcticonskeystore.jks *.eml freedesktop-theme/arcticons* +/app/src/main/assets/contributors/downloaded +app/src/main/res/xml/contributors.xml +keystore.properties \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index e86a95e41c..ff54492910 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,11 +11,26 @@ android { targetSdkVersion rootProject.ext.TargetSdk versionCode 1350 versionName '10.0.5' - multiDexEnabled true + multiDexEnabled true // Naming app bundles + base { + archivesName = "${parent.name}-v${versionName}" + } - // Naming app bundles - setArchivesBaseName("${parent.name}-v${versionName}") + } + // Load keystore + def keystorePropertiesFile = rootProject.file("keystore.properties"); + def releaseSigning; + if (keystorePropertiesFile.exists()){ + def keystoreProperties = new Properties() + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) + releaseSigning = signingConfigs.create("release", signingConfig -> { + signingConfig.setKeyAlias(keystoreProperties.getProperty("keyAlias")); + signingConfig.setKeyPassword(keystoreProperties.getProperty("keyPassword")); + signingConfig.setStoreFile(rootProject.file(keystoreProperties.getProperty("storeFile"))); + signingConfig.setStorePassword(keystoreProperties.getProperty("storePassword")); + }); + } else {releaseSigning = signingConfigs.named("debug"); // Use getByName for safety } buildFeatures { @@ -23,12 +38,17 @@ android { } buildTypes { + configureEach { + signingConfig = releaseSigning + } release { minifyEnabled false - debug { - applicationIdSuffix '.debug' - } } + debug { + applicationIdSuffix '.debug' + } + + applicationVariants.all { variant -> if (variant.flavorName == "you" || variant.flavorName == "youPlay") { @@ -105,12 +125,14 @@ android { } buildFeatures { + buildConfig = true viewBinding true } namespace 'com.donnnno.arcticons' lint { abortOnError false checkReleaseBuilds false + lintConfig = file("lint.xml") } } diff --git a/app/lint.xml b/app/lint.xml new file mode 100644 index 0000000000..3ad1dd5854 --- /dev/null +++ b/app/lint.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 246a1b7869..4bdf7dfe0a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,7 +23,6 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/Theme.App.Starting" - tools:replace="android:icon" > + \ No newline at end of file diff --git a/app/src/you/res/drawable/ic_launcher_background.xml b/app/src/you/res/mipmap-anydpi-v26/ic_launcher_background.xml similarity index 100% rename from app/src/you/res/drawable/ic_launcher_background.xml rename to app/src/you/res/mipmap-anydpi-v26/ic_launcher_background.xml diff --git a/app/src/you/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/you/res/mipmap-anydpi-v26/ic_launcher_round.xml index bbd3e02123..b3e4fd3473 100644 --- a/app/src/you/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/you/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,6 @@ - + + \ No newline at end of file diff --git a/generated/changelog.md b/generated/changelog.md new file mode 100644 index 0000000000..886c3226a5 --- /dev/null +++ b/generated/changelog.md @@ -0,0 +1,7 @@ +### An Awsome Release Title +* :rocket: Many new icons! +* :rainbow: +* :tada: Fixes for icons not applying. +* :fire: 10000 icons in total! +* :sparkles: + diff --git a/generated/releaseImage.jpg b/generated/releaseImage.jpg new file mode 100644 index 0000000000..452057140d Binary files /dev/null and b/generated/releaseImage.jpg differ diff --git a/generated/releaseName.txt b/generated/releaseName.txt new file mode 100644 index 0000000000..0b63f18df0 --- /dev/null +++ b/generated/releaseName.txt @@ -0,0 +1 @@ +Test Release !!! \ No newline at end of file diff --git a/preparehelper/build.gradle b/preparehelper/build.gradle index 19b069694d..3d33dafd73 100644 --- a/preparehelper/build.gradle +++ b/preparehelper/build.gradle @@ -1,9 +1,9 @@ plugins { - id("application") + id 'application' } application { - mainClassName = "com.donnnno.arcticons.helper.Start" + mainClass.set("com.donnnno.arcticons.helper.Start") } tasks.register('runyou', JavaExec) { @@ -44,3 +44,8 @@ dependencies { implementation("commons-io:commons-io:2.15.0") implementation 'org.sejda.imageio:webp-imageio:0.1.6' } + +java { + sourceCompatibility = JavaVersion.VERSION_14 + targetCompatibility = JavaVersion.VERSION_14 +} \ No newline at end of file diff --git a/preparehelper/src/main/java/com/donnnno/arcticons/helper/ContributorImage.java b/preparehelper/src/main/java/com/donnnno/arcticons/helper/ContributorImage.java index 20fe011fe3..83381aa270 100644 --- a/preparehelper/src/main/java/com/donnnno/arcticons/helper/ContributorImage.java +++ b/preparehelper/src/main/java/com/donnnno/arcticons/helper/ContributorImage.java @@ -56,13 +56,12 @@ public static BufferedImage downloadImages(String imageUrl) { URL url = new URL(imageUrl); BufferedImage img = ImageIO.read(url); if (img != null) { - System.out.println("Downloaded image from: " + imageUrl); + //System.out.println("Downloaded image from: " + imageUrl); return img; - } else { - System.err.println("Failed to download image from: " + imageUrl); } } catch (IOException e) { - System.err.println("Failed to download image from: " + imageUrl + " " + e.getMessage()); + //System.err.println("Failed to download image from: " + imageUrl + " " + e.getMessage()); + return null; } return null; } diff --git a/preparehelper/src/main/java/com/donnnno/arcticons/helper/Start.java b/preparehelper/src/main/java/com/donnnno/arcticons/helper/Start.java index f8c2dff1fa..db7bbb8a73 100644 --- a/preparehelper/src/main/java/com/donnnno/arcticons/helper/Start.java +++ b/preparehelper/src/main/java/com/donnnno/arcticons/helper/Start.java @@ -23,8 +23,8 @@ public static void main(String[] args) { String categoryGamesXml; String assetsDir; String appFilter; - System.out.println("root Dir: " + rootPath); - System.out.println("root Dir Name: " + rootDirName); + //System.out.println("root Dir: " + rootPath); + //System.out.println("root Dir Name: " + rootDirName); if (args.length > 0) { String flavor = args[0]; // Use the flavor as needed diff --git a/settings.gradle b/settings.gradle index 33700d5ef2..47ef7263ff 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,3 @@ include ':preparehelper' -include ':app', ':libs:candybar', ':libs:extLibs:PreLollipopTransitions' +include ':app'