diff --git a/app/build.gradle b/app/build.gradle
index 3df93fef10..cd87a4d913 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,6 +20,10 @@ android {
def splitAPKsForDebugBuilds = System.getenv("TERMUX_SPLIT_APKS_FOR_DEBUG_BUILDS") ?: "1"
def splitAPKsForReleaseBuilds = System.getenv("TERMUX_SPLIT_APKS_FOR_RELEASE_BUILDS") ?: "0" // F-Droid does not support split APKs #1904
+ buildFeatures {
+ buildConfig true
+ }
+
dependencies {
implementation "androidx.annotation:annotation:1.3.0"
implementation "androidx.core:core:1.6.0"
@@ -37,6 +41,7 @@ android {
implementation project(":termux-shared")
}
+ namespace "com.termux"
defaultConfig {
applicationId "com.termux"
minSdkVersion project.properties.minSdkVersion.toInteger()
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7c566c8f0d..94dcb132d2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,6 +20,7 @@
android:label="@string/permission_run_command_label"
android:protectionLevel="dangerous" />
+
@@ -31,7 +32,7 @@
-
+
diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt
new file mode 100644
index 0000000000..1a9d8f2cd5
--- /dev/null
+++ b/app/src/main/cpp/CMakeLists.txt
@@ -0,0 +1,8 @@
+# won't this help more than mk?
+cmake_minimum_required(VERSION 3.10)
+project(libtermux-bootstrap C)
+set(SOURCES
+ termux-bootstrap-zip.S
+ termux-bootstrap.c
+)
+add_library(termux-bootstrap SHARED ${SOURCES})
diff --git a/app/src/main/java/com/termux/app/activities/HelpActivity.java b/app/src/main/java/com/termux/app/activities/HelpActivity.java
index a2e4d6a985..20ff2ea134 100644
--- a/app/src/main/java/com/termux/app/activities/HelpActivity.java
+++ b/app/src/main/java/com/termux/app/activities/HelpActivity.java
@@ -35,7 +35,7 @@ protected void onCreate(Bundle savedInstanceState) {
mWebView = new WebView(this);
WebSettings settings = mWebView.getSettings();
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
- settings.setAppCacheEnabled(false);
+ //settings.setAppCacheEnabled(false); // uh?
setContentView(progressLayout);
mWebView.clearCache(true);
diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java
index cd38163116..bd789145f2 100644
--- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java
+++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionActivityClient.java
@@ -271,7 +271,7 @@ private synchronized void loadBellSoundPool() {
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION).build()).build();
try {
- mBellSoundId = mBellSoundPool.load(mActivity, R.raw.bell, 1);
+ mBellSoundId = mBellSoundPool.load(mActivity, com.termux.shared.R.raw.bell, 1);
} catch (Exception e){
// Catch java.lang.RuntimeException: Unable to resume activity {com.termux/com.termux.app.TermuxActivity}: android.content.res.Resources$NotFoundException: File res/raw/bell.ogg from drawable resource ID
Logger.logStackTraceWithMessage(LOG_TAG, "Failed to load bell sound pool", e);
diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java
index a3d09d3d52..700c5e5098 100644
--- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java
+++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalViewClient.java
@@ -735,8 +735,8 @@ public void reportIssueFromTranscript() {
MessageDialogUtils.showMessage(mActivity, TermuxConstants.TERMUX_APP_NAME + " Report Issue",
mActivity.getString(R.string.msg_add_termux_debug_info),
- mActivity.getString(R.string.action_yes), (dialog, which) -> reportIssueFromTranscript(transcriptText, true),
- mActivity.getString(R.string.action_no), (dialog, which) -> reportIssueFromTranscript(transcriptText, false),
+ mActivity.getString(com.termux.shared.R.string.action_yes), (dialog, which) -> reportIssueFromTranscript(transcriptText, true),
+ mActivity.getString(com.termux.shared.R.string.action_no), (dialog, which) -> reportIssueFromTranscript(transcriptText, false),
null);
}
diff --git a/build.gradle b/build.gradle
index 80ddd4bde1..ebdfc562d5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ buildscript {
google()
}
dependencies {
- classpath "com.android.tools.build:gradle:4.2.2"
+ classpath "com.android.tools.build:gradle:8.1.1"
}
}
@@ -15,7 +15,3 @@ allprojects {
maven { url "https://jitpack.io" }
}
}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a0f7639f7d..fe5ba8a54c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Sun Apr 06 11:06:59 EEST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/terminal-emulator/build.gradle b/terminal-emulator/build.gradle
index afc57e9f7e..b207f1a1f1 100644
--- a/terminal-emulator/build.gradle
+++ b/terminal-emulator/build.gradle
@@ -1,10 +1,13 @@
-apply plugin: 'com.android.library'
-apply plugin: 'maven-publish'
+plugins {
+ id 'com.android.library'
+ id 'maven-publish'
+}
android {
compileSdkVersion project.properties.compileSdkVersion.toInteger()
ndkVersion = System.getenv("JITPACK_NDK_VERSION") ?: project.properties.ndkVersion
+ namespace "com.termux.terminal"
defaultConfig {
minSdkVersion project.properties.minSdkVersion.toInteger()
targetSdkVersion project.properties.targetSdkVersion.toInteger()
@@ -41,6 +44,11 @@ android {
testOptions {
unitTests.returnDefaultValues = true
}
+ publishing {
+ singleVariant("release") {
+ withSourcesJar()
+ }
+ }
}
tasks.withType(Test) {
@@ -56,7 +64,8 @@ dependencies {
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
- classifier "sources"
+ //classifier "sources" //depracated
+ archiveClassifier.set("sources") //functional
}
afterEvaluate {
diff --git a/terminal-view/build.gradle b/terminal-view/build.gradle
index d603da2880..b6d498f778 100644
--- a/terminal-view/build.gradle
+++ b/terminal-view/build.gradle
@@ -9,6 +9,7 @@ android {
api project(":terminal-emulator")
}
+ namespace "com.termux.view"
defaultConfig {
minSdkVersion project.properties.minSdkVersion.toInteger()
targetSdkVersion project.properties.targetSdkVersion.toInteger()
@@ -26,6 +27,12 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
+
+ publishing {
+ singleVariant("release") {
+ withSourcesJar()
+ }
+ }
}
dependencies {
@@ -34,7 +41,8 @@ dependencies {
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
- classifier "sources"
+ //classifier "sources" //depracated
+ archiveClassifier.set("sources") //functional
}
afterEvaluate {
diff --git a/termux-shared/build.gradle b/termux-shared/build.gradle
index 7c3cfcc71d..4f7e9369a5 100644
--- a/termux-shared/build.gradle
+++ b/termux-shared/build.gradle
@@ -9,7 +9,9 @@ android {
implementation "androidx.annotation:annotation:1.3.0"
implementation "androidx.core:core:1.6.0"
implementation "com.google.android.material:material:1.4.0"
- implementation "com.google.guava:guava:24.1-jre"
+ implementation("com.google.guava:guava:24.1-jre") {
+ exclude group: 'com.google.guava', module: 'listenablefuture'
+ }
implementation "io.noties.markwon:core:$markwonVersion"
implementation "io.noties.markwon:ext-strikethrough:$markwonVersion"
implementation "io.noties.markwon:linkify:$markwonVersion"
@@ -30,6 +32,7 @@ android {
implementation "com.termux:termux-am-library:v2.0.0"
}
+ namespace "com.termux.shared"
defaultConfig {
minSdkVersion project.properties.minSdkVersion.toInteger()
targetSdkVersion project.properties.targetSdkVersion.toInteger()
@@ -60,6 +63,11 @@ android {
path file('src/main/cpp/Android.mk')
}
}
+ publishing {
+ singleVariant("release") {
+ withSourcesJar()
+ }
+ }
}
dependencies {
@@ -71,7 +79,8 @@ dependencies {
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
- classifier "sources"
+ //classifier "sources" //depracated
+ archiveClassifier.set("sources") //functional
}
afterEvaluate {
diff --git a/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java b/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java
index d7543fc7c9..9ecb4400e1 100644
--- a/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java
+++ b/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java
@@ -51,7 +51,7 @@ public static void showMessage(Context context, String titleText, String message
final DialogInterface.OnClickListener onNegativeButton,
final DialogInterface.OnDismissListener onDismiss) {
- AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog);
+ AlertDialog.Builder builder = new AlertDialog.Builder(context, androidx.appcompat.R.style.Theme_AppCompat_Light_Dialog);
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View view = inflater.inflate(R.layout.dialog_show_message, null);