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);