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'