Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 4 additions & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Set up Android NDK
uses: nttld/setup-ndk@v1
with:
ndk-version: r28b
ndk-version: r29

- name: Build proot
run: |
Expand All @@ -40,25 +40,15 @@ jobs:
run: |
echo "${{ secrets.KEYSTORE }}" | base64 -d > /tmp/release.keystore

- name: Build release APK
- name: Build release APK and AAB
if: github.ref == 'refs/heads/main'
env:
GABE_RELEASE_KEYSTORE_FILE: /tmp/release.keystore
GABE_RELEASE_SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
GABE_RELEASE_STORE_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
GABE_RELEASE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
GABE_RELEASE_KEY_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
run: |
./gradlew assembleRelease

- name: Build release AAB
if: github.ref == 'refs/heads/main'
env:
GABE_RELEASE_KEYSTORE_FILE: /tmp/release.keystore
GABE_RELEASE_SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
GABE_RELEASE_KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
GABE_RELEASE_KEY_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
run: |
./gradlew bundleRelease
./gradlew assembleRelease bundleRelease

- name: Upload debug artifacts
uses: actions/upload-artifact@v4
Expand Down
8 changes: 4 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ plugins {

android {
namespace = 'org.godotengine.godot_gradle_build_environment'
compileSdk = 35
ndkVersion = '28.1.13356709'
compileSdk = 36
ndkVersion = '29.0.14206865'

def keystoreFile = System.getenv("GABE_RELEASE_KEYSTORE_FILE")

Expand All @@ -23,7 +23,7 @@ android {
defaultConfig {
applicationId = "org.godotengine.godot_gradle_build_environment"
minSdk = 24
targetSdk = 35
targetSdk = 36
versionCode = 2
versionName = "0.2"

Expand All @@ -34,7 +34,7 @@ android {
signingConfigs {
release {
storeFile file(System.getenv("GABE_RELEASE_KEYSTORE_FILE"))
storePassword System.getenv("GABE_RELEASE_SIGNING_PASSWORD")
storePassword System.getenv("GABE_RELEASE_STORE_PASSWORD")
keyAlias System.getenv("GABE_RELEASE_KEY_ALIAS")
keyPassword System.getenv("GABE_RELEASE_KEY_PASSWORD")
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package org.godotengine.godot_gradle_build_environment

import android.content.Context
import androidx.annotation.DrawableRes
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Build
import androidx.compose.material.icons.filled.List
import androidx.compose.material.icons.filled.Settings
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
Expand All @@ -22,18 +19,19 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import org.godotengine.godot_gradle_build_environment.screens.ProjectsScreen
import org.godotengine.godot_gradle_build_environment.screens.RootfsScreen
import org.godotengine.godot_gradle_build_environment.screens.SettingsScreen
import java.io.File

enum class AppTab(
val label: String,
val icon: ImageVector
@DrawableRes val icon: Int
) {
PROJECTS("Projects", Icons.Filled.List),
ROOTFS("Rootfs", Icons.Filled.Build),
SETTINGS("Settings", Icons.Filled.Settings),
PROJECTS("Projects", R.drawable.icon_projects_tab),
ROOTFS("Rootfs", R.drawable.icon_rootfs_tab),
SETTINGS("Settings", R.drawable.icon_settings),
}

@OptIn(ExperimentalMaterial3Api::class)
Expand All @@ -59,7 +57,7 @@ fun MainScreen(
NavigationBar {
AppTab.entries.forEach { tab ->
NavigationBarItem(
icon = { Icon(tab.icon, contentDescription = tab.label) },
icon = { Icon(ImageVector.vectorResource(tab.icon), contentDescription = tab.label) },
label = { Text(tab.label) },
selected = selectedTab == tab,
onClick = { selectedTab = tab }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.icons.filled.Refresh
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.CircularProgressIndicator
Expand All @@ -44,7 +41,9 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
Expand All @@ -53,6 +52,7 @@ import org.godotengine.godot_gradle_build_environment.BuildEnvironmentService
import org.godotengine.godot_gradle_build_environment.CachedProject
import org.godotengine.godot_gradle_build_environment.FileUtils
import org.godotengine.godot_gradle_build_environment.ProjectInfo
import org.godotengine.godot_gradle_build_environment.R

@Composable
fun ProjectsScreen(modifier: Modifier = Modifier) {
Expand Down Expand Up @@ -253,7 +253,7 @@ private fun ProjectItem(
} else {
IconButton(onClick = onRefresh) {
Icon(
imageVector = Icons.Filled.Refresh,
imageVector = ImageVector.vectorResource(R.drawable.icon_refresh),
contentDescription = "Refresh size",
tint = MaterialTheme.colorScheme.primary
)
Expand All @@ -268,7 +268,7 @@ private fun ProjectItem(
} else {
IconButton(onClick = onDelete) {
Icon(
imageVector = Icons.Filled.Delete,
imageVector = ImageVector.vectorResource(R.drawable.icon_delete),
contentDescription = "Delete project cache",
tint = MaterialTheme.colorScheme.error
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Refresh
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card
Expand All @@ -42,12 +40,16 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.godotengine.godot_gradle_build_environment.AppPaths
import org.godotengine.godot_gradle_build_environment.BuildEnvironmentService
import org.godotengine.godot_gradle_build_environment.FileUtils
import org.godotengine.godot_gradle_build_environment.R
import org.godotengine.godot_gradle_build_environment.SettingsManager

@Composable
Expand Down Expand Up @@ -201,7 +203,7 @@ fun SettingsScreen(
} else {
IconButton(onClick = { onRefresh() }) {
Icon(
imageVector = Icons.Filled.Refresh,
imageVector = ImageVector.vectorResource(R.drawable.icon_refresh),
contentDescription = "Refresh cache size",
tint = MaterialTheme.colorScheme.primary
)
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/icon_delete.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M280,840Q247,840 223.5,816.5Q200,793 200,760L200,240L160,240L160,160L360,160L360,120L600,120L600,160L800,160L800,240L760,240L760,760Q760,793 736.5,816.5Q713,840 680,840L280,840ZM360,680L440,680L440,320L360,320L360,680ZM520,680L600,680L600,320L520,320L520,680Z"/>
</vector>
10 changes: 10 additions & 0 deletions app/src/main/res/drawable/icon_projects_tab.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:autoMirrored="true">
<path
android:fillColor="@android:color/white"
android:pathData="M280,360L280,280L840,280L840,360L280,360ZM280,520L280,440L840,440L840,520L280,520ZM280,680L280,600L840,600L840,680L280,680ZM160,360Q143,360 131.5,348.5Q120,337 120,320Q120,303 131.5,291.5Q143,280 160,280Q177,280 188.5,291.5Q200,303 200,320Q200,337 188.5,348.5Q177,360 160,360ZM160,520Q143,520 131.5,508.5Q120,497 120,480Q120,463 131.5,451.5Q143,440 160,440Q177,440 188.5,451.5Q200,463 200,480Q200,497 188.5,508.5Q177,520 160,520ZM160,680Q143,680 131.5,668.5Q120,657 120,640Q120,623 131.5,611.5Q143,600 160,600Q177,600 188.5,611.5Q200,623 200,640Q200,657 188.5,668.5Q177,680 160,680Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/icon_refresh.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M480,800Q346,800 253,707Q160,614 160,480Q160,346 253,253Q346,160 480,160Q549,160 612,188.5Q675,217 720,270L720,160L800,160L800,440L520,440L520,360L688,360Q656,304 600.5,272Q545,240 480,240Q380,240 310,310Q240,380 240,480Q240,580 310,650Q380,720 480,720Q557,720 619,676Q681,632 706,560L790,560Q762,666 676,733Q590,800 480,800Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/icon_rootfs_tab.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M686,828L444,584Q424,592 403.5,596Q383,600 360,600Q260,600 190,530Q120,460 120,360Q120,324 130,291.5Q140,259 158,230L304,376L376,304L230,158Q259,140 291.5,130Q324,120 360,120Q460,120 530,190Q600,260 600,360Q600,383 596,403.5Q592,424 584,444L828,686Q840,698 840,715Q840,732 828,744L744,828Q732,840 715,840Q698,840 686,828Z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/icon_settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M370,880L354,752Q341,747 329.5,740Q318,733 307,725L188,775L78,585L181,507Q180,500 180,493.5Q180,487 180,480Q180,473 180,466.5Q180,460 181,453L78,375L188,185L307,235Q318,227 330,220Q342,213 354,208L370,80L590,80L606,208Q619,213 630.5,220Q642,227 653,235L772,185L882,375L779,453Q780,460 780,466.5Q780,473 780,480Q780,487 780,493.5Q780,500 778,507L881,585L771,775L653,725Q642,733 630,740Q618,747 606,752L590,880L370,880ZM482,620Q540,620 581,579Q622,538 622,480Q622,422 581,381Q540,340 482,340Q423,340 382.5,381Q342,422 342,480Q342,538 382.5,579Q423,620 482,620Z"/>
</vector>
16 changes: 8 additions & 8 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[versions]
agp = "8.13.0"
agp = "8.13.2"
commonsCompress = "1.28.0"
kotlin = "2.0.21"
kotlinxSerialization = "1.7.3"
coreKtx = "1.13.1"
kotlin = "2.3.10"
kotlinxSerialization = "1.10.0"
coreKtx = "1.17.0"
junit = "4.13.2"
junitVersion = "1.3.0"
espressoCore = "3.7.0"
lifecycleRuntimeKtx = "2.9.3"
activityCompose = "1.10.1"
composeBom = "2024.09.00"
xz = "1.10"
lifecycleRuntimeKtx = "2.10.0"
activityCompose = "1.12.3"
composeBom = "2026.01.01"
xz = "1.11"

[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
Expand Down