diff --git a/.github/workflows/asm_build.yml b/.github/workflows/asm_build.yml
index ab87c249a..b1ed767e0 100644
--- a/.github/workflows/asm_build.yml
+++ b/.github/workflows/asm_build.yml
@@ -1,4 +1,4 @@
-name: Build Android Code Studio
+name: Build AndroidStudio
on:
push:
@@ -68,7 +68,7 @@ jobs:
echo "=== SigningDirectory ==="
ls -la core/app/signing/ || echo "core/app/signing directory not found"
- name: Assemble Debug APK
- run: ./gradlew :core:app:assembleDebug
+ run: ./gradlew :core:app:assembleDebug --stacktrace
# run: ./gradlew :core:app:assembleRelease
- name: List APK files (debug)
run: ls -la core/app/build/outputs/apk/debug/
@@ -95,4 +95,4 @@ jobs:
with:
name: apk-universal-release
path: core/app/build/outputs/apk/release/*universal*.apk
- if: always()
\ No newline at end of file
+ if: always()
diff --git a/composite-builds/build-deps/settings.gradle.kts b/composite-builds/build-deps/settings.gradle.kts
index 23b082a9a..3d8d0dc40 100644
--- a/composite-builds/build-deps/settings.gradle.kts
+++ b/composite-builds/build-deps/settings.gradle.kts
@@ -20,13 +20,10 @@
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
pluginManagement {
+ // ✅ सही path – root के build-logic को include kar rahe hain
includeBuild("../build-logic")
repositories {
- // maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
- // maven { url = uri("https://maven.aliyun.com/repository/central") }
- // maven { url = uri("https://maven.aliyun.com/repository/google") }
-
gradlePluginPortal()
google()
mavenCentral()
@@ -35,8 +32,6 @@ pluginManagement {
dependencyResolutionManagement {
repositories {
- // maven { url = uri("https://maven.aliyun.com/repository/central") }
- // maven { url = uri("https://maven.aliyun.com/repository/google") }
google()
mavenCentral()
}
@@ -71,4 +66,4 @@ gradle.rootProject {
project.file("../../local.properties")
.takeIf { it.exists() }
?.copyTo(project.file("local.properties"), overwrite = true)
-}
\ No newline at end of file
+}
diff --git a/core/app/build.gradle.kts b/core/app/build.gradle.kts
index bd088ccb5..6f150c90c 100755
--- a/core/app/build.gradle.kts
+++ b/core/app/build.gradle.kts
@@ -1,18 +1,18 @@
/*
- * This file is part of AndroidIDE.
+ * This file is part of AndroidCodeStudio.
*
- * AndroidIDE is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * AndroidCodeStudio is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
*
- * AndroidIDE is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * AndroidCodeStudio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with AndroidIDE. If not, see .
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidCodeStudio. If not, see .
*/
@file:Suppress("UnstableApiUsage")
@@ -23,281 +23,224 @@ import com.tom.rv2ide.plugins.AndroidIDEAssetsPlugin
import java.util.Properties
plugins {
- id("com.tom.rv2ide.core-app")
- id("com.android.application")
- id("kotlin-android")
- id("kotlin-kapt")
- id("kotlinx-serialization")
- id("kotlin-parcelize")
- id("androidx.navigation.safeargs.kotlin")
- id("com.tom.rv2ide.desugaring")
+ id("com.tom.rv2ide.core-app")
+ id("com.android.application")
+ id("kotlin-android")
+ id("kotlin-kapt")
+ id("kotlinx-serialization")
+ id("kotlin-parcelize")
+ id("androidx.navigation.safeargs.kotlin")
+ id("com.tom.rv2ide.desugaring")
}
apply { plugin(AndroidIDEAssetsPlugin::class.java) }
buildscript {
- dependencies {
- classpath(libs.logging.logback.core)
- classpath(libs.composite.desugaringCore)
- }
-}
-
-tasks.configureEach {
- if (name.contains("desugar", ignoreCase = true)) {
- enabled = false
+ dependencies {
+ classpath(libs.logging.logback.core)
+ classpath(libs.composite.desugaringCore)
}
}
+// ❌ पुराना block जो desugaring tasks को बंद करता था, अब हटा दिया गया है।
+// tasks.configureEach {
+// if (name.contains("desugar", ignoreCase = true)) {
+// enabled = false
+// }
+// }
+
configurations.all {
- resolutionStrategy {
- force("com.google.guava:guava:32.1.3-android")
- eachDependency {
- if (requested.group == "com.google.guava" && requested.name == "guava") {
- if (requested.version?.contains("jre") == true) {
- useVersion("32.1.3-android")
- because("Force Android version to avoid synthetic lambda conflicts")
+ resolutionStrategy {
+ force("com.google.guava:guava:32.1.3-android")
+ eachDependency {
+ if (requested.group == "com.google.guava" && requested.name == "guava") {
+ if (requested.version?.contains("jre") == true) {
+ useVersion("32.1.3-android")
+ }
+ }
}
- }
}
- }
}
android {
- namespace = BuildConfig.packageName
+ namespace = BuildConfig.packageName
- defaultConfig {
- applicationId = BuildConfig.packageName
- vectorDrawables.useSupportLibrary = true
- }
-
- experimentalProperties["android.experimental.enableGlobalSynthetics"] = true
-
-
- signingConfigs {
- create("custom") {
- val keyStorePath = "${rootProject.projectDir}/signing/signing-key.jks"
- val keyStoreFile = file(keyStorePath)
-
- val signing_storePassword = System.getenv("SIGNING_STORE_PASSWORD") ?: ""
- val signing_keyPassword = System.getenv("SIGNING_KEY_PASSWORD") ?: ""
-
- storeFile = keyStoreFile
- storePassword = signing_storePassword
- keyAlias = "AndroidCS"
- keyPassword = signing_keyPassword
- }
- }
+ defaultConfig {
+ applicationId = BuildConfig.packageName
+ vectorDrawables.useSupportLibrary = true
+ }
- androidResources { generateLocaleConfig = true }
+ experimentalProperties["android.experimental.enableGlobalSynthetics"] = true
+
+ // ❌ 'cruncherEnabled' AGP 8+ में हटा दी गई है – अब इसकी जरूरत नहीं।
+ // aaptOptions {
+ // cruncherEnabled = false
+ // }
+
+ signingConfigs {
+ create("custom") {
+ val keyStorePath = "${rootProject.projectDir}/signing/signing-key.jks"
+ val keyStoreFile = file(keyStorePath)
+ val signing_storePassword = System.getenv("SIGNING_STORE_PASSWORD") ?: ""
+ val signing_keyPassword = System.getenv("SIGNING_KEY_PASSWORD") ?: ""
+ storeFile = keyStoreFile
+ storePassword = signing_storePassword
+ keyAlias = "AndroidCS"
+ keyPassword = signing_keyPassword
+ }
+ }
- buildFeatures {
- aidl = true
- dataBinding = true
- }
+ androidResources { generateLocaleConfig = true }
- buildTypes {
- debug {
- signingConfig = signingConfigs.getByName("custom")
+ buildFeatures {
+ aidl = true
+ dataBinding = true
+ // buildConfig = true // AGP 8+ के लिए यह जरूरी हो सकता है, gradle.properties में पहले से है
}
- release {
- isShrinkResources = false
- signingConfig = signingConfigs.getByName("custom")
+ buildTypes {
+ debug {
+ signingConfig = signingConfigs.getByName("custom")
+ }
+ release {
+ isShrinkResources = false
+ signingConfig = signingConfigs.getByName("custom")
+ }
}
- }
-
- lint {
- abortOnError = false
- disable.addAll(arrayOf("VectorPath", "NestedWeights", "ContentDescription", "SmallSp"))
- }
- packaging {
- resources {
- pickFirsts += "kotlin/**.kotlin_builtins"
- pickFirsts += "THIRD-PARTY"
- pickFirsts += "LICENSE"
+ lint {
+ abortOnError = false
+ disable.addAll(arrayOf("VectorPath", "NestedWeights", "ContentDescription", "SmallSp"))
}
- }
-
- applicationVariants.all {
- val variant = this
- variant.outputs.all {
- val output = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
-
- val versionName = variant.versionName ?: "unknown"
- val versionCode = variant.versionCode
- val buildType = variant.buildType.name
- val filters = output.filters
- val abiFilter = filters.find { it.filterType == "ABI" }
- val archSuffix =
- abiFilter?.identifier
- ?: run {
- val variantName = variant.name.lowercase()
- when {
- variantName.contains("arm64") -> "arm64-v8a"
- variantName.contains("armeabi") || variantName.contains("arm7") -> "armeabi-v7a"
- else -> {
- // This should not happen with our configuration
- throw IllegalStateException(
- "Could not determine ABI for variant: $variantName. Expected arm64-v8a or armeabi-v7a."
- )
- }
- }
- }
-
- if (archSuffix !in listOf("arm64-v8a", "armeabi-v7a")) {
- throw IllegalStateException(
- "Unsupported architecture: $archSuffix. Only arm64-v8a and armeabi-v7a are supported."
- )
- }
- val appName = "android-code-studio"
- val fileName =
- if (buildType == "release") {
- "${appName}-${archSuffix}-${versionName}.apk"
- } else {
- "${appName}-${archSuffix}-${buildType}-${versionName}.apk"
- }
-
- output.outputFileName = fileName
+ packaging {
+ resources {
+ excludes += "/META-INF/{AL2.0,LGPL2.1}"
+ pickFirsts += "kotlin/**.kotlin_builtins"
+ pickFirsts += "META-INF/LICENSE.md"
+ pickFirsts += "META-INF/LICENSE-notice.md"
+ pickFirsts += "META-INF/LICENSE"
+ pickFirsts += "META-INF/NOTICE"
+ pickFirsts += "THIRD-PARTY"
+ }
+ }
- println(
- "Generated APK: $fileName for variant: ${variant.name}, arch: $archSuffix, versionCode: $versionCode"
- )
+ applicationVariants.all {
+ val variant = this
+ variant.outputs.all {
+ val output = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
+ val versionName = variant.versionName ?: "unknown"
+ val buildType = variant.buildType.name
+ val archSuffix = "arm64-v8a" // Defaulting to arm64 for simplicity in server builds
+ val appName = "android-code-studio"
+ output.outputFileName = "${appName}-${archSuffix}-${buildType}-${versionName}.apk"
+ }
}
- }
}
kapt { arguments { arg("eventBusIndex", "${BuildConfig.packageName}.events.AppEventsIndex") } }
desugaring {
- replacements {
- includePackage(
- "org.eclipse.jgit",
- )
-
- applyJavaIOReplacements()
- }
+ replacements {
+ includePackage("org.eclipse.jgit")
+ applyJavaIOReplacements()
+ }
}
-
dependencies {
- // debugImplementation(libs.common.leakcanary)
- implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
- implementation("org.tukaani:xz:1.9")
- implementation("org.apache.commons:commons-compress:1.21")
-
- // external deps here
- implementation("com.github.Dimezis:BlurView:version-3.2.0")
- implementation("androidx.security:security-crypto:1.1.0-alpha06")
- implementation(projects.external.acsprovider)
- implementation(projects.external.atc)
- implementation(libs.external.customizable.cardview)
- implementation(projects.external.logwire)
- implementation(libs.external.seasonal.effects)
-
- // Annotation processors
- kapt(libs.common.glide.ap)
- kapt(libs.google.auto.service)
- kapt(projects.annotation.processors)
-
- implementation(libs.common.editor)
- implementation(libs.common.utilcode)
- implementation(libs.common.glide)
- implementation(libs.common.jsoup)
- implementation(libs.common.kotlin.coroutines.android)
- implementation(libs.common.retrofit)
- implementation(libs.common.retrofit.gson)
- implementation(libs.common.charts)
- implementation(libs.common.hiddenApiBypass)
- implementation(libs.aapt2.common)
-
- implementation(libs.google.auto.service.annotations)
- implementation(libs.google.gson)
- implementation(libs.google.guava)
-
- implementation("com.google.ai.client.generativeai:generativeai:0.9.0") {
- exclude(group = "org.slf4j", module = "slf4j-api")
- exclude(group = "org.slf4j", module = "slf4j-simple")
- exclude(group = "org.slf4j", module = "slf4j-nop")
- }
-
- // TODO: remove this
- implementation("com.github.MiyazKaori:SilentInstaller:1.0.0-alpha")
-
- // Git
- implementation(libs.git.jgit)
-
- // AndroidX
- implementation(libs.androidx.splashscreen)
- implementation(libs.androidx.annotation)
- implementation(libs.androidx.appcompat)
- implementation(libs.androidx.cardview)
- implementation(libs.androidx.constraintlayout)
- implementation(libs.androidx.coordinatorlayout)
- implementation(libs.androidx.drawer)
- implementation(libs.androidx.grid)
- implementation(libs.androidx.nav.fragment)
- implementation(libs.androidx.nav.ui)
- implementation(libs.androidx.preference)
- implementation(libs.androidx.recyclerview)
- implementation(libs.androidx.transition)
- implementation(libs.androidx.vectors)
- implementation(libs.androidx.animated.vectors)
- implementation(libs.androidx.work)
- implementation(libs.androidx.work.ktx)
- implementation(libs.google.material)
- implementation(libs.google.flexbox)
-
- // Kotlin
- implementation(libs.androidx.core.ktx)
- implementation(libs.common.kotlin)
-
- // Dependencies in composite build
- implementation(libs.composite.appintro)
- implementation(libs.composite.desugaringCore)
- implementation(libs.composite.javapoet)
-
- // Local projects here
- implementation(projects.core.projectdata)
- implementation(projects.ideconfigurations)
- implementation(projects.core.actions)
- implementation(projects.core.common)
- implementation(projects.core.indexingApi)
- implementation(projects.core.indexingCore)
- implementation(projects.core.lspApi)
- implementation(projects.core.projects)
- implementation(projects.core.resources)
- implementation(projects.editor.impl)
- implementation(projects.editor.lexers)
- implementation(projects.event.eventbus)
- implementation(projects.event.eventbusAndroid)
- implementation(projects.event.eventbusEvents)
- implementation(projects.java.javacServices)
- implementation(projects.java.lspSetup)
- implementation(projects.java.lsp)
- implementation(projects.logging.idestats)
- implementation(projects.logging.logsender)
- implementation(projects.termux.application)
- implementation(projects.termux.view)
- implementation(projects.termux.emulator)
- implementation(projects.termux.shared)
- implementation(projects.tooling.api)
- implementation(projects.tooling.pluginConfig)
- implementation(projects.utilities.buildInfo)
- implementation(projects.utilities.lookup)
- implementation(projects.utilities.preferences)
- implementation(projects.utilities.templatesApi)
- implementation(projects.utilities.templatesImpl)
- implementation(projects.utilities.treeview)
- implementation(projects.utilities.uidesigner)
- implementation(projects.utilities.xmlInflater)
- implementation(projects.xml.aaptcompiler)
- implementation(projects.xml.lsp)
- implementation(projects.xml.utils)
-
- // This is to build the tooling-api-impl project before the app is built
- // So we always copy the latest JAR file to assets
- compileOnly(projects.tooling.impl)
-
+ implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
+ implementation("org.tukaani:xz:1.9")
+ implementation("org.apache.commons:commons-compress:1.21")
+ implementation("com.github.Dimezis:BlurView:version-3.2.0")
+ implementation("androidx.security:security-crypto:1.1.0-alpha06")
+ implementation(projects.external.acsprovider)
+ implementation(projects.external.atc)
+ implementation(libs.external.customizable.cardview)
+ implementation(projects.external.logwire)
+ implementation(libs.external.seasonal.effects)
+ kapt(libs.common.glide.ap)
+ kapt(libs.google.auto.service)
+ kapt(projects.annotation.processors)
+ implementation(libs.common.editor)
+ implementation(libs.common.utilcode)
+ implementation(libs.common.glide)
+ implementation(libs.common.jsoup)
+ implementation(libs.common.kotlin.coroutines.android)
+ implementation(libs.common.retrofit)
+ implementation(libs.common.retrofit.gson)
+ implementation(libs.common.charts)
+ implementation(libs.common.hiddenApiBypass)
+ implementation(libs.aapt2.common)
+ implementation(libs.google.auto.service.annotations)
+ implementation(libs.google.gson)
+ implementation(libs.google.guava)
+ implementation("com.google.ai.client.generativeai:generativeai:0.9.0") {
+ exclude(group = "org.slf4j", module = "slf4j-api")
+ exclude(group = "org.slf4j", module = "slf4j-simple")
+ exclude(group = "org.slf4j", module = "slf4j-nop")
+ }
+ implementation("com.github.MiyazKaori:SilentInstaller:1.0.0-alpha")
+ implementation(libs.git.jgit)
+ implementation(libs.androidx.splashscreen)
+ implementation(libs.androidx.annotation)
+ implementation(libs.androidx.appcompat)
+ implementation(libs.androidx.cardview)
+ implementation(libs.androidx.constraintlayout)
+ implementation(libs.androidx.coordinatorlayout)
+ implementation(libs.androidx.drawer)
+ implementation(libs.androidx.grid)
+ implementation(libs.androidx.nav.fragment)
+ implementation(libs.androidx.nav.ui)
+ implementation(libs.androidx.preference)
+ implementation(libs.androidx.recyclerview)
+ implementation(libs.androidx.transition)
+ implementation(libs.androidx.vectors)
+ implementation(libs.androidx.animated.vectors)
+ implementation(libs.androidx.work)
+ implementation(libs.androidx.work.ktx)
+ implementation(libs.google.material)
+ implementation(libs.google.flexbox)
+ implementation(libs.androidx.core.ktx)
+ implementation(libs.common.kotlin)
+ implementation(libs.composite.appintro)
+ implementation(libs.composite.desugaringCore)
+ implementation(libs.composite.javapoet)
+ implementation(projects.core.projectdata)
+ implementation(projects.ideconfigurations)
+ implementation(projects.core.actions)
+ implementation(projects.core.common)
+ implementation(projects.core.indexingApi)
+ implementation(projects.core.indexingCore)
+ implementation(projects.core.lspApi)
+ implementation(projects.core.projects)
+ implementation(projects.core.resources)
+ implementation(projects.editor.impl)
+ implementation(projects.editor.lexers)
+ implementation(projects.event.eventbus)
+ implementation(projects.event.eventbusAndroid)
+ implementation(projects.event.eventbusEvents)
+ implementation(projects.java.javacServices)
+ implementation(projects.java.lspSetup)
+ implementation(projects.java.lsp)
+ implementation(projects.logging.idestats)
+ implementation(projects.logging.logsender)
+ implementation(projects.termux.application)
+ implementation(projects.termux.view)
+ implementation(projects.termux.emulator)
+ implementation(projects.termux.shared)
+ implementation(projects.tooling.api)
+ implementation(projects.tooling.pluginConfig)
+ implementation(projects.utilities.buildInfo)
+ implementation(projects.utilities.lookup)
+ implementation(projects.utilities.preferences)
+ implementation(projects.utilities.templatesApi)
+ implementation(projects.utilities.templatesImpl)
+ // ✅ सही path: utilities/treeview (settings.gradle.kts में include है)
+ implementation(projects.utilities.treeview)
+ implementation(projects.utilities.uidesigner)
+ implementation(projects.utilities.xmlInflater)
+ implementation(projects.xml.aaptcompiler)
+ implementation(projects.xml.lsp)
+ implementation(projects.xml.utils)
+ compileOnly(projects.tooling.impl)
}
diff --git a/core/resources/src/main/res/values-ar-rSA/strings.xml b/core/resources/src/main/res/values-ar-rSA/strings.xml
index 2c9746c90..17430aa2c 100644
--- a/core/resources/src/main/res/values-ar-rSA/strings.xml
+++ b/core/resources/src/main/res/values-ar-rSA/strings.xml
@@ -1,578 +1,524 @@
-
- نسخ
- المزيد…
- البحث عن نص
- البريد الإلكتروني
- الموقع الإلكتروني
- أندرويد %1$s لـ %2$s
- ببساطة، منصة بناء تطبيقات للاندرويد
- فشل في استخراج اسم الحزمة!
- إذا كنت تواجه مشكلات أثناء استخدام AndroidIDE أو مع بناء التطبيقات ، يمكنك الانضمام إلى مجموعة التيليغرام وطلب المساعدة هناك.\n\nيمكنك أيضًا إرسال ملاحظات متضمنة على بريدنا الإلكتروني.
- تحتاج للمساعدة؟
- إعدادات IDE
- المناقشات على التيليغرام
- قناة التيليغرام الرسمية
- لا يوجد بيانات
- التيرمنال
- إعادة تعيين
- سجلات التطبيق
- سجلات IDE
-
- البدء
- غير قادر على إجراء إصلاح سريع
- تنفيذ إجراء الكود…
- منذ API %d
- تمت إزالته في API %d
- تم إهماله في API %d
- العثور على مراجع…
- العثور على تعريف…
- التعريف غير موجود
-
- لم يتم العثور على مراجع
- التشخيصات
- فشل التثبيت
- الملف المأخوذ ليس مجلدا!
- رجاءا انتظر لحظة…
-
- هذا الجهاز غير مدعوم
- أنت تستخدم نسخة %1$s من AndroidIDE على جهاز يعمل فقط بـ %2$s. هذه التكوينات غير معتمدة. يرجى تثبيت نسخة %2$s من AndroidIDE.
- مسح المخرجات
- مخرجات البناء
- تشغيل سريع
- تم تغيير ملفات Gradle. الرجاء إعادة بناء المشروع الخاص بك لمزامنة الاعتمادات والتهيئات.
- جاري الإعداد
- التحضير للبناء. قد يستغرق البناء الأول ما يصل إلى 10-15 دقيقة!
- عذرا، Gradle wrapwrapper غير متوفر!\nجاري تثبيت واحدة افتراضية. سيتم تنزيل Gradle v7.4 إذا لزم الأمر.
- تشغيل
-
- أول بناء
- هذه هي المرة الأولى التي يتم فيها البناء بعد تثبيت AndroidIDE. يستغرق البناء الأول عادة وقتاً بينما يقوم تنزيل Gradle بتحميل جميع التبعيات والإضافات. قد تستغرق هذه العملية حوالي 10 - 15 دقيقة. لكن هذا يعتمد كلياً على اتصال الشبكة الخاصة بك.\n\nالرجاء التحلي بالصبر…
- إنشاء مشروع
- الحد الأدنى من SDK
- مشروع جديد
- اسم الحزمة
- اسم التطبيق
- ابدأ مشروعك الرائع الجديد!
- فتح آخر مشروع؟
- هل تريدني أن أفتح آخر مشروع مفتوح؟ المشروع المفتوح كان:\n%s
- غلق هذا المشروع
- آخر مشروع فتح غير موجود!
- إنشاء مشروع جديد
- فتح مشروع موجود
- إغلاق المشروع
-
- هل أنت متأكد من رغبتك في إغلاق هذا المشروع؟ سيتم إيقاف جميع ديمونات Gradle التي بدأت بعد إغلاق هذا المشروع.
- المشروع الأساسي
- مشروع فارغ
- مشروع درج التنقل
- نشاط التنقل السفلي
- نشاط التبويب
- لا يوجد نشاط
- دون AndroidX
-
- حفظ
- البحث
- البحث في الملف
- البحث في المشروع
- بحث في الوحدات البرمجية
- لا توجد وحدات في المشروع
- تصفية امتدادات الملف (اختياري)
- مفصولة بـ \'|\'
- الرجاء إدخال نص
- حدد وحدات للبحث
- البحث في المشروع، يرجى الانتظار…
- نتائج البحث
- أُنشئ المشروع بنجاح!
- فشل إنشاء المشروع
- فشل في إنشاء المجلد
- فشل في إنشاء ملف
- فشل إنشاء ملف التخطيط!
- تم إنشاء المجلد بنجاح
- تم إنشاء الملف بنجاح
- المجلد موجود بالفعل
- الملف موجود بالفعل!
- مِلَفّ التخطيط موجود فعلًا!
- اسم غير صحيح!
- إنشاء
- إذا كان المسار يحتوي على فاصل الملفات (\'/\')، فسيتم إنشاء الدلائل المطلوبة (الأم) إذا لم تكن موجودة.
- اسم المجلد
- إسم الملف
- اسم جديد
- ملف جديد
- إنشاء مِلَفّ تخطيط
- كلاس جافا جديد
- مصدر XML جديد
- مجلد جديد
- تأكيد الحذف
- هل أنت متأكد من أنك تريد حذف:\n%s؟
- تم النسخ بنجاح
- أدخل اسم جديد للملف/المجلد.
- تمت إعادة التسمية بنجاح
- لا يمكن إعادة تسمية الملف.
- تم الحذف بنجاح
- غير قادر على حذف الملف!
- نسخ المسار
- إعادة تسمية
- حذف
- إغلاق الكل
- إغلاق الأخرى
- أغلق هذا التبويب
- تم حفظ جميع الملفات.
- فشل حفظ الملفات
- الوجهة: %s/
- مورد رسم
- الواجهة
- القائمة
- أخرى
- كلاس
- نشاط (واجهة)
- واجهة مستخدم (انترفيس)
- تعدد (Enum)
- فشل في إدراج ملفات المشروع!
-
- فتح بواسطة...
- تراجع
- إعادة
-
- حجم خط المحرر
- حول AndroidIDE
- مسح جميع ذاكرة التخزين المؤقت
- مسح دليل ذاكرة التخزين المؤقت. سيؤدي هذا إلى حذف جميع التبعيات التي تم تحميلها بواسطة Gradle. سيتم تحميل الملفات المطلوبة مرة أخرى في النسخة التالية.
- أوامر Gradle الإضافية
- اختر أوامر إضافية سيتم إضافتها أثناء تنفيذ كل مهمة
- حجم الخط
- حجم خط المحرر
- أعلام الرسوم غير المطبوعة
- اختر ما هي الأحرف غير القابلة للطباعة التي يجب أن يرسمها المحرر
- التفاف النص
- استخدام تغليف الكلمات للمحرر
- تمكين المكبر
- تكبير النص في موضع المؤشر أثناء اختيار النص في المحرر
- المحرر
- بناء وتشغيل
- فتح آخر مشروع؟
- إذا تم تحديده، فسيتذكر IDE آخر مشروع تم فتحه وسيتم إعادة فتحه عند بدء التشغيل التالي.
- تأكيد فتح المشروع
- اسأل قبل فتح آخر مشروع مفتوح.
- استخدام shell النظام في الـterminal
- إذا تم تحديده، سيتم استخدام \'/system/bin/sh\' في التيرمنال.
- عام
- حجم التبويبة
- حدد عدد المسافات لـ TAB
- الإعدادات
- سِجل التغييرات
- الرجاء اختيار حجم الخط الافتراضي للمحرر :
- هذا الأمر سيقوم بحذف مسار/مجلد البيانات المؤقتة الذي تم أنشاءه بواسطة Gradle. إذا حذفته، قد تتأخر عملية البناء نسبياً كما سيتم تنزيل الملفات المطلوبة بواسطة Gradle مرة أخرى.\n\nهل أنت متيقِّن من حذف التخزين المؤقت؟
-
-
- معاينة التخطيط
- حذف
- يرجى التأكيد
- هل أنت متأكد؟
- لم يتم إضافة أي عرض. انقر للإضافة.
- فشل في إنشاء كود XML
- إنشاء كود XML
- مرر لأعلى للإخراج والسجلات والمزيد.
- تحطم AndroidIDE
- الرجاء فتح مشكلة على github مع المكونات التالية:
- انقر على الزر أدناه لنسخ السجل وفتح صفحة المشكلات.
- نسخ وتقرير
- الترجمات
- توسيع التحديد
- مطابقة المكملات في حالة الأحرف الصغيرة
- الشائعة
- الملفات غير المحفوظة
- لم يتم حفظ بعض الملفات. هل ترغب في حفظها قبل الإغلاق؟ الملفات غير المحفوظة هي: \n%s
- حفظ قبل إغلاق الملفات
- حفظ الملفات قبل إغلاقها. هذه ميزة تجريبية. من المتوقع أن تحفظ الملفات بنفسك.
- إذا تم تفعيله، فإن كتابة حالة صغيرة أو أحرف أعلى سوف تقترح أسماء الكلاس بالإضافة إلى أعضاء النطاق.
- ميزات الخط
- تمكين/تعطيل ميزات الخط
- نعم
- لا
- إضافة سمة
- درج الملفات
- قيمة السمة
- تنسيق الكود
- استخدام تنسيق الكود بنمط جافا Google
- استخدم إعدادات تنسيق الكود بنمط جافا لـ Google لتنسيق كود مصدر جافا.
- علامة كلمة المرور المرئية
- استخدم لعلم نوع إدخال كلمة المرور المرئية في المحرر. هذا يضمن عدم اقتراح أي اقتراحات بواسطة لوحة المفاتيح الناعمة.
- السابق
- تم بدء خدمة بناء Gradle
- خدمة بناء Gradle
- إلغاء البناء
- تهيئة المشروع
- تم تهيئة المشروع
- فشل تهيئة المشروع
- لم يتم تهيئة المشروع
- الاستبدالات
- مزامنة المشروع
- موقع الحفظ
- لغة المشروع
- التالي
- خروج
- تثبيت Gradle المخصصة
- حدد تثبيت Gradle مخصص لاستخدامه في البناء. سيقوم بتغيير الإصدار المحدد في gradle-wrapper.properties.
- مسار تثبيت Gradle
- اتركه فارغاً لاستخدام Gradle wrapper.
- لا يوجد بناء قيد التقدم
- البناء جارٍ...
- فشل البناء. راجع إخراج البناء لمزيد من التفاصيل.
- تم البناء بنجاح
- فشل الحصول على نص من المحرر
- البيانات غير صالحة للقصد.
- حدد مجلد من وحدة التخزين الرئيسية
- السلطة \'\'%s\' غير مسموح بها
- استخدام مكتبة ICU
- استخدم مكتبة ICU لاستخدام استعادة حواف الكلمات للنقر المزدوج والضغط المطول على اختيار الكلمات.
-
-
- مرر لأعلى لعرض @@مخرجات البناء@@
- استخدام علامة التبويب الناعمة
- اختر ما إذا كان سيتم استخدام المسافات بدلاً من حرف التبويب (\\t).
- تبرع
- إرشادات الإستخدام
- إغلاق
- تجاهل الحالة
- استخدم التعبير النصي (regex)
- تكوين بناء Gradle.
- تهيئة
- عن التطبيق
- AndroidIDE مفتوح المصدر!
- اشترك للحصول على أحدث تحديثات.
- مناقشة الميزات، الأخطاء والتحسينات هنا.
- ما الجديد في هذا الإصدار؟
- المزيد عن AndroidIDE.
- إعدادات IDE العامة.
- تهيئة المحرر.
- تقليم السطر الجديد النهائي
- إدراج سطر جديد نهائي
- إزالة سطر فارغ إضافي في نهاية الملف
- إدراج سطر جديد فارغ في نهاية الملف.
- تقسيم السمات
- تنسيق السمات على سطر جديد
- الانضمام إلى خطوط CDATA
- تطبيع المحتوى داخل CDATA.
- تجميع (ربط) اسطر التعليق
- تطبيع المحتوى داخل التعليقات.
- تجميع (ربط) اسطر المحتوى
- تطبيع المحتوى داخل العناصر.
- المسافة قبل علامة إغلاق فارغة
- إدراج مسافة بيضاء قبل وضع علامة إغلاق ذاتي بين قوسين نهائيين.
- الحفاظ على المحتوى الفارغ
- الحفاظ على المحتوى الفارغ داخل العناصر (المسافات البيضاء، الخطوط الجديدة، علامات التبويب، إلخ).
- الحفاظ على فواصل الخط
- الحفاظ على فواصل الخط بين السمات.
- إغلاق الأقواس في الخط الجديد
- ضع القوس المغلق على سطر جديد.
- تقليم المسافة البيضاء
- إزالة المسافات البيضاء إضافية في نهاية الخطوط.
- أقصى عرض للسطر
- الحد الأقصى لعدد الأحرف التي يجب أن تكون في السطر.
- فصل حجم العوز للسمات
- عدد المسافات المراد إضافتها لسمات التقسيم.
- احتفظ بخطوط جديدة
- • الحد الأقصى لعدد فترات التوقف المستمرة التي ينبغي الحفاظ عليها.
- سلوك العناصر الفارغة
- اختر سلوك التنسيق للعناصر الفارغة.
- خيارات تنسيق XML
- تهيئة تنسيق XML
- استخدام خط مخصص
- في حالة التمكين، سيتم استخدام الملف الموجود على \"/data/com.tom.rv2ide/files/home/.androidide/ui/font.ttf\" كخط محرر.
- تثبيت APK...
- هل تريد فتح التطبيق؟
- خدمة بناء AndroidIDE
- رمز اللون Hex
- انتقاء
- إعداد أذونات قابلة للتنفيذ…
- ربط %1$s بـ %2$s
- استخراج مكتبات الرابط…
- اسم الحزمة فارغ
- اسم الحزمة غير صالح
- اسم الحزمة طويل
- لا يمكن أن يكون الرمز \'_\' أول حرف في شريحة الحزمة
- لا يمكن أن يكون الرقم أول حرف في شريحة الحزمة
- الحرف \"%1$s\" غير مسموح به في أسماء حزمة تطبيقات Android
- يجب أن تحتوي الحزمة على فاصل \'.\' واحد على الأقل
- استيراد الكلاس(ات)
- إنشاء محدثات (setters)/مستخرجات (getters)
- اضافة \'اطلاق خطأ\'
- تعليق السطر
- إنشاء الفويد الناقصة
- تحويل إلى مكوّنات
- إنشاء مولد كلاس (constructor)
- اضافة الفويد الاساسية
- حذف الكلاس
- إزالة الفويد
- إزالة اطلاقات الاخطاء غير المستخدم
- قمع تحذير \'غير محدد\'
- ازالة تعليق السطر
- تحويل إلى شكل
- اختر الحقول
- لم يتم اختيار أي حقل.
- لا توجد حقول
- اعادة كتابة فويد الكلاس الاب
- لم يتم اختيار أي حقل.
- غير قادر على اعادة كتابة الفويد
- غير قادر على إنشاء فويد محدثات و مستخرجات
- حدد فويد لاعادة كتابتها
- غير قادر على العثور على أي فويد يمكن اعادة كتابتها
- الانتقال إلى التعريف
- البحث عن مراجع
- إنشاء toString()
- إزالة الامبورت غير المستخدمة
- تنظيم الاستيراد (امبورت)
- غير قادر على إنشاء تطبيق toString()
- toString() تم تجهيزها بالفعل
- إنشاء مولد كلاس (constructor) مفقود
- غير قادر على إنشاء المولد
- المولد بنفس المعطيات (باراميتر) متوفر بالفعل
- إستبدال
- استبدال الكل
- تشغيل المهام
- البحث عن المهام…
- الرجاء تحديد المهام لتشغيلها
- التأكيد
- سيتم تشغيل المهام التالية، بالترتيب. انقر فوق الزر \'تشغيل\' مرة أخرى للتأكيد.\n\n%1$s
- جارٍ تحميل المهام...
-
- نسخ
- نسخ مشروع Git
- رابط المشروع
- نسخ مشروع Git...
- تم نسخ مشروع Git بنجاح
- فشل في استنساخ مشروع git
- حدد سمة من القائمة أدناه
- عرض التسلسل الهرمي للتخطيط
- نظام الألوان
- اختر مخطط الألوان لاستخدامه في المحرر
- نمط واجهة المستخدم
- اختر وضع واجهة المستخدم لـ IDE
- فاتح
- مظلم
- اتبع النظام
- سمة
- اختر سمة لـ AndroidIDE (تتطلب إعادة التشغيل).
- تهيئة المشروع
- فشل التشغيل. يجب تثبيت التطبيق أولاً.
- التشخيصات مفعلة
- (تجريبي) ما إذا ينبغي تحليل ملفات مصدر جافا بحثا عن أخطاء أم لا.
- إعادة تحميل أنظمة الألوان
- فشل تشغيل مختار الملفات: %1$s
- أداة خادم API غير متوفرة. تحقق من إخراج البناء وسجلات IDE للأخطاء.
- حذف الأسطر الفارغة عند المسح
- ما إذا كان على المحرر حذف الأسطر الفارغة عند المسح للخلف بضغطة واحدة أم لا.
- حذف التاب عند المسح
- عند تفعيلها، المحرر سيحذف الفراغات المساوية لعرض التاب (غالبا 4 فراغ) عند الضغط على مسح النص.
- مزامنة
- تجاهل التغييرات
- أصلح الواردات (إمبورت)
- لم يتم العثور على أسماء الكلاس
- أي %1$s؟
- ربط بخدمة التسجيل
- السماح لهذا التطبيق بربطه مع خدمة تسجيل اللوغ لـ AndroidIDE. هذا الامر مطلوب لـ AndroidIDE لقراءة السجلات (اللوغ) لهذا التطبيق.
- اسم الإضافة
- نوع الإضافة
- أسم إضافة غير صالح
- القيمة فارغة
- الملف غير موجود
- يجب أن يكون مسار إلى ملف
- اسم الكلاس يحتوي على كلمات مفتاحية
- يجب أن يكون المسار إلى مجلد
- اسم ملف التخطيط غير صالح
- تفاصيل المشروع غير صالحة
- استخدام سكريبت كوتلن (.kts) لإنشاء ملفات بناء غرادل
- الخصوصية
- إحصائيات التطبيق
- ساعدنا في تحسين التطبيق مِن خلال توفير إحصائيات مجهولة المصدر. سوف نجمع المعلومات الأساسية حول جهازك لإحصاءات قاعدة المستخدمين فقط. يمكن عرض البيانات الدقيقة التي تتم مشاركتها في التفضيلات. بياناتك آمنة ولا تتم مشاركتها مع خَدَمَات الجهات الخارجية. يمكنك إلغاء الاشتراك في أي وقت في تفضيلاتك.
- إحصائيات الإستخدام المجهول
- مجموعة الإحصائيات
- السماح بجمع مقاييس التثبيت وإحصائيات الجهاز (مجهول تماما).
- ايدي مميز
- الجهاز
- إصدار التطبيق
- البلد
- بناء CPU
- معاينة البيانات
- اصدار الاندرويد
- الاشتراك
- خيارات المطور
- خيارات تجريبية/تصحيح أخطاء AndroidIDE
- تصحيح الأخطاء
- تفريغ السجلات
- تفريغ سجلات AndroidIDE إلى $HOME/.androidide/logs
- قم بتشغيل النسخة التصحيحية (debug) من تطبيقك لعرض السجلات هنا.
- تم تعطيل إرسال السجل. يمكنك تمكينه في الخيارات.
- تظهر سجلات من بيئة التطوير المتكاملة هنا.
- افتح ملف لعرض نتائج التشخيص الخاصة به
- "قم ببناء التطبيق أو تشغيل مهمة لرؤية نتائج بنائه هنا. "
- فشلت في تنفيذ الإجراء.
- تمكين مرسل السجلات.
- عند التعطيل، لن يتم عرض سجلات التطبيقات في AndroidIDE.
- Build variants
- Apply
- Discard
- Failed to fetch build variants
- Choose application
- Selected build variant not found
- Disconnect log senders
- Begin long select
- Sticky scroll
- Show the current scope at the top while scrolling the editor.
- Launch app after installation
- If enabled, the IDE will (without confirmation) launch the application right after it is installed.
- Run options
- Cannot run application. Unable to determine package name.
- Cannot run application. No application modules found in project.
- Launch app
- Experimental
- You are using %1$s variant of AndroidIDE on a %2$s device. This configuration may work, but it\'ll result in reduced performance and possible security vulnerabilities. Please avoid using this configuration whenever possible.
- Pin line numbers
- Whether the editor should pin line number panel when scrolled horizontally.
- Blue Wave
- Sunny Glow
- Material You
- Language
- Select a language for AndroidIDE.
- System Default
- Project directory is not accessible
- Selected file is not a directory
- Project directory does not exist
- A file save operation is already in progress!
- SDK Installation
- Install the development tools
- The development tools must be installed for the IDE to work. Clicking the done button will open terminal to install the tools. To install, follow the instructions here.
Or read the documentation]]>.
- Welcome
- Learn, build, launch. All on your Android.
- Grant
- Storage
- Required to access project files.
- Allow installing APKs built with AndroidIDE.
- Install packages
- Permissions
- AndroidIDE requires the following permissions
- Please grant the permissions to continue.
- It seems you\'re offline. Check your internet connection.
- Heads up! You\'re using cellular data.
- Heads up! You\'re on a metered network.
- Disable background data restriction to avoid installation failures.
- Unable to create terminal session
- Automatic installation
- Manual installation
- Android SDK version
- JDK version
- Install Git
- Install OpenSSH
- Cannot create session. New sessions are disabled!
- Install location error
- Unsupported user
- Socials
- Contributors
- Top community contributors.
- GitHub Contributors
- Crowdin Translators
- Misc
- Contribute
- It\'s not just an IDE, it\'s a community. Contribute code, ideas, and passion to AndroidIDE.
- No application available to handle intent.
- Open source licenses
- View open source licenses.
- JDK version
- Currently selected: %1$s (requires restart if changed)
- لا توجد تحديثات متاحة
- فشل التحقق من وجود تحديثات
- فشل تحميل سجل التغييرات
- خطأ في جلب سجل التغييرات
- لم يتم العثور على تحديث متوافق لجهازك
- فشل التنزيل
- فشل التنزيل: %s
- فشل التثبيت
- لا يمكن فتح المتصفح
- تحديث متاح
- تنزيل
- عرض في المتصفح
- لاحقًا
- إلغاء
- جاري تنزيل التحديث
- الإصدار الجديد %s متاح!
- بنية الجهاز: %s
- رمز الإصدار المستهدف: %d
- المتغيرات المتاحة: %s
- جاري التحضير للتنزيل...
- %d ميجابايت / %d ميجابايت
- يرجى تمكين 'تثبيت التطبيقات غير المعروفة' والمحاولة مرة أخرى
- خطأ HTTP: %d
- خطأ في جلب معلومات التحديث
- خطأ في تحليل معلومات التحديث
- الإصدار الحالي: %d، الإصدار المتاح: %d للبنية: %s
- لم يتم العثور على متغير متوافق للبنية: %s
- الحزمة غير موجودة
- ABIs المدعومة: %s
- لم يتم العثور على بنية معروفة، سيتم الرجوع إلى armeabi-v7a
- بنية الجهاز: %s
- لم يتم العثور على تطابق تام لـ %s، جاري تجربة البدائل
- استخدام armeabi-v7a كبديل لـ arm64-v8a
- استخدام x86 كبديل لـ x86_64
- لم يتم العثور على تطابق تام للبنية، سيتم استخدام أول متغير متاح
- خطأ في تنزيل APK
- خطأ في تنزيل APK
- خطأ في تثبيت APK
- خطأ في فتح المتصفح
- متغيرات البناء
- تطبيق
- تجاهل
- فشل جلب متغيرات البناء
- اختر التطبيق
- لم يتم العثور على متغير البناء المحدد
- فصل مرسلي السجلات
- بدء التحديد الطويل
- التمرير اللاصق
- إظهار النطاق الحالي في الأعلى أثناء تمرير المحرر.
- تشغيل التطبيق بعد التثبيت
- إذا تم التمكين، سيقوم IDE (بدون تأكيد) بتشغيل التطبيق مباشرة بعد تثبيته.
- خيارات التشغيل
- لا يمكن تشغيل التطبيق. تعذر تحديد اسم الحزمة.
- لا يمكن تشغيل التطبيق. لم يتم العثور على وحدات تطبيق في المشروع.
- تشغيل التطبيق
- تجريبي
- تثبيت أرقام الأسطر
- ما إذا كان يجب على المحرر تثبيت لوحة أرقام الأسطر عند التمرير أفقيًا.
- موجة زرقاء
- توهج مشمس
- Material You
- اللغة
- افتراضي النظام
- لا يمكن الوصول إلى دليل المشروع
- الملف المحدد ليس دليلاً
- دليل المشروع غير موجود
- عملية حفظ ملف قيد التقدم بالفعل!
- تثبيت SDK
- تثبيت أدوات التطوير
- أهلاً بك
- تعلم، ابنِ، أطلق. كل ذلك على جهاز Android الخاص بك.
- منح
- التخزين
- مطلوب للوصول إلى ملفات المشروع.
- تثبيت الحزم
- الأذونات
- يرجى منح الأذونات للمتابعة.
- يبدو أنك غير متصل بالإنترنت. تحقق من اتصالك بالإنترنت.
- تنبيه! أنت تستخدم بيانات الجوال.
- تنبيه! أنت على شبكة محدودة.
- عطّل تقييد بيانات الخلفية لتجنب فشل التثبيت.
- تعذر إنشاء جلسة طرفية
- تثبيت تلقائي
- تثبيت يدوي
- إصدار Android SDK
- إصدار JDK
- تثبيت Git
- تثبيت OpenSSH
- لا يمكن إنشاء جلسة. الجلسات الجديدة معطلة!
- خطأ في موقع التثبيت
- مستخدم غير مدعوم
+ نسخ
+ المزيد…
+ البحث عن نص
+ البريد الإلكتروني
+ الموقع الإلكتروني
+ أندرويد %1$s لـ %2$s
+ ببساطة، منصة بناء تطبيقات للاندرويد
+ فشل في استخراج اسم الحزمة!
+ إذا كنت تواجه مشكلات أثناء استخدام AndroidIDE أو مع بناء التطبيقات ، يمكنك الانضمام إلى مجموعة التيليغرام وطلب المساعدة هناك.\n\nيمكنك أيضًا إرسال ملاحظات متضمنة على بريدنا الإلكتروني.
+ تحتاج للمساعدة؟
+ إعدادات IDE
+ المناقشات على التيليغرام
+ قناة التيليغرام الرسمية
+ لا يوجد بيانات
+ التيرمنال
+ إعادة تعيين
+ سجلات التطبيق
+ سجلات IDE
+
+ البدء
+ غير قادر على إجراء إصلاح سريع
+ تنفيذ إجراء الكود…
+ منذ API %d
+ تمت إزالته في API %d
+ تم إهماله في API %d
+ العثور على مراجع…
+ العثور على تعريف…
+ التعريف غير موجود
+ لم يتم العثور على مراجع
+ التشخيصات
+ فشل التثبيت
+ الملف المأخوذ ليس مجلدا!
+ رجاءا انتظر لحظة…
+
+ هذا الجهاز غير مدعوم
+ أنت تستخدم نسخة %1$s من AndroidIDE على جهاز يعمل فقط بـ %2$s. هذه التكوينات غير معتمدة. يرجى تثبيت نسخة %2$s من AndroidIDE.
+ مسح المخرجات
+ مخرجات البناء
+ تشغيل سريع
+ تم تغيير ملفات Gradle. الرجاء إعادة بناء المشروع الخاص بك لمزامنة الاعتمادات والتهيئات.
+ جاري الإعداد
+ التحضير للبناء. قد يستغرق البناء الأول ما يصل إلى 10-15 دقيقة!
+ عذرا، Gradle wrapwrapper غير متوفر!\nجاري تثبيت واحدة افتراضية. سيتم تنزيل Gradle v7.4 إذا لزم الأمر.
+ تشغيل
+
+ أول بناء
+ هذه هي المرة الأولى التي يتم فيها البناء بعد تثبيت AndroidIDE. يستغرق البناء الأول عادة وقتاً بينما يقوم تنزيل Gradle بتحميل جميع التبعيات والإضافات. قد تستغرق هذه العملية حوالي 10 - 15 دقيقة. لكن هذا يعتمد كلياً على اتصال الشبكة الخاصة بك.\n\nالرجاء التحلي بالصبر…
+ إنشاء مشروع
+ الحد الأدنى من SDK
+ مشروع جديد
+ اسم الحزمة
+ اسم التطبيق
+ ابدأ مشروعك الرائع الجديد!
+ فتح آخر مشروع؟
+ هل تريدني أن أفتح آخر مشروع مفتوح؟ المشروع المفتوح كان:\n%s
+ غلق هذا المشروع
+ آخر مشروع فتح غير موجود!
+ إنشاء مشروع جديد
+ فتح مشروع موجود
+ إغلاق المشروع
+ هل أنت متأكد من رغبتك في إغلاق هذا المشروع؟ سيتم إيقاف جميع ديمونات Gradle التي بدأت بعد إغلاق هذا المشروع.
+
+ المشروع الأساسي
+ مشروع فارغ
+ مشروع درج التنقل
+ نشاط التنقل السفلي
+ نشاط التبويب
+ لا يوجد نشاط
+ دون AndroidX
+
+ حفظ
+ البحث
+ البحث في الملف
+ البحث في المشروع
+ بحث في الوحدات البرمجية
+ لا توجد وحدات في المشروع
+ تصفية امتدادات الملف (اختياري)
+ مفصولة بـ \'|\'
+ الرجاء إدخال نص
+ حدد وحدات للبحث
+ البحث في المشروع، يرجى الانتظار…
+ نتائج البحث
+ أُنشئ المشروع بنجاح!
+ فشل إنشاء المشروع
+ فشل في إنشاء المجلد
+ فشل في إنشاء ملف
+ فشل إنشاء ملف التخطيط!
+ تم إنشاء المجلد بنجاح
+ تم إنشاء الملف بنجاح
+ المجلد موجود بالفعل
+ الملف موجود بالفعل!
+ مِلَفّ التخطيط موجود فعلًا!
+ اسم غير صحيح!
+ إنشاء
+ إذا كان المسار يحتوي على فاصل الملفات (\'/\')، فسيتم إنشاء الدلائل المطلوبة (الأم) إذا لم تكن موجودة.
+ اسم المجلد
+ إسم الملف
+ اسم جديد
+ ملف جديد
+ إنشاء مِلَفّ تخطيط
+ كلاس جافا جديد
+ مصدر XML جديد
+ مجلد جديد
+ تأكيد الحذف
+ هل أنت متأكد من أنك تريد حذف:\n%s؟
+ تم النسخ بنجاح
+ أدخل اسم جديد للملف/المجلد.
+ تمت إعادة التسمية بنجاح
+ لا يمكن إعادة تسمية الملف.
+ تم الحذف بنجاح
+ غير قادر على حذف الملف!
+ نسخ المسار
+ إعادة تسمية
+ حذف
+ إغلاق الكل
+ إغلاق الأخرى
+ أغلق هذا التبويب
+ تم حفظ جميع الملفات.
+ فشل حفظ الملفات
+ الوجهة: %s/
+ مورد رسم
+ الواجهة
+ القائمة
+ أخرى
+ كلاس
+ نشاط (واجهة)
+ واجهة مستخدم (انترفيس)
+ تعدد (Enum)
+ فشل في إدراج ملفات المشروع!
+
+ فتح بواسطة...
+ تراجع
+ إعادة
+
+ حجم خط المحرر
+ حول AndroidIDE
+ مسح جميع ذاكرة التخزين المؤقت
+ مسح دليل ذاكرة التخزين المؤقت. سيؤدي هذا إلى حذف جميع التبعيات التي تم تحميلها بواسطة Gradle. سيتم تحميل الملفات المطلوبة مرة أخرى في النسخة التالية.
+ أوامر Gradle الإضافية
+ اختر أوامر إضافية سيتم إضافتها أثناء تنفيذ كل مهمة
+ حجم الخط
+ حجم خط المحرر
+ أعلام الرسوم غير المطبوعة
+ اختر ما هي الأحرف غير القابلة للطباعة التي يجب أن يرسمها المحرر
+ التفاف النص
+ استخدام تغليف الكلمات للمحرر
+ تمكين المكبر
+ تكبير النص في موضع المؤشر أثناء اختيار النص في المحرر
+ المحرر
+ بناء وتشغيل
+ فتح آخر مشروع؟
+ إذا تم تحديده، فسيتذكر IDE آخر مشروع تم فتحه وسيتم إعادة فتحه عند بدء التشغيل التالي.
+ تأكيد فتح المشروع
+ اسأل قبل فتح آخر مشروع مفتوح.
+ استخدام shell النظام في الـterminal
+ إذا تم تحديده، سيتم استخدام \'/system/bin/sh\' في التيرمنال.
+ عام
+ حجم التبويبة
+ حدد عدد المسافات لـ TAB
+ الإعدادات
+ سِجل التغييرات
+ الرجاء اختيار حجم الخط الافتراضي للمحرر :
+ هذا الأمر سيقوم بحذف مسار/مجلد البيانات المؤقتة الذي تم أنشاءه بواسطة Gradle. إذا حذفته، قد تتأخر عملية البناء نسبياً كما سيتم تنزيل الملفات المطلوبة بواسطة Gradle مرة أخرى.\n\nهل أنت متيقِّن من حذف التخزين المؤقت؟
+
+ معاينة التخطيط
+ حذف
+ يرجى التأكيد
+ هل أنت متأكد؟
+ لم يتم إضافة أي عرض. انقر للإضافة.
+ فشل في إنشاء كود XML
+ إنشاء كود XML
+ مرر لأعلى للإخراج والسجلات والمزيد.
+ تحطم AndroidIDE
+ الرجاء فتح مشكلة على github مع المكونات التالية:
+ انقر على الزر أدناه لنسخ السجل وفتح صفحة المشكلات.
+ نسخ وتقرير
+ الترجمات
+ توسيع التحديد
+ مطابقة المكملات في حالة الأحرف الصغيرة
+ الشائعة
+ الملفات غير المحفوظة
+ لم يتم حفظ بعض الملفات. هل ترغب في حفظها قبل الإغلاق؟ الملفات غير المحفوظة هي: \n%s
+ حفظ قبل إغلاق الملفات
+ حفظ الملفات قبل إغلاقها. هذه ميزة تجريبية. من المتوقع أن تحفظ الملفات بنفسك.
+ إذا تم تفعيله، فإن كتابة حالة صغيرة أو أحرف أعلى سوف تقترح أسماء الكلاس بالإضافة إلى أعضاء النطاق.
+ ميزات الخط
+ تمكين/تعطيل ميزات الخط
+ نعم
+ لا
+ إضافة سمة
+ درج الملفات
+ قيمة السمة
+ تنسيق الكود
+ استخدام تنسيق الكود بنمط جافا Google
+ استخدم إعدادات تنسيق الكود بنمط جافا لـ Google لتنسيق كود مصدر جافا.
+ علامة كلمة المرور المرئية
+ استخدم لعلم نوع إدخال كلمة المرور المرئية في المحرر. هذا يضمن عدم اقتراح أي اقتراحات بواسطة لوحة المفاتيح الناعمة.
+ السابق
+ تم بدء خدمة بناء Gradle
+ خدمة بناء Gradle
+ إلغاء البناء
+ تهيئة المشروع
+ تم تهيئة المشروع
+ فشل تهيئة المشروع
+ لم يتم تهيئة المشروع
+ الاستبدالات
+ مزامنة المشروع
+ موقع الحفظ
+ لغة المشروع
+ التالي
+ خروج
+ تثبيت Gradle المخصصة
+ حدد تثبيت Gradle مخصص لاستخدامه في البناء. سيقوم بتغيير الإصدار المحدد في gradle-wrapper.properties.
+ مسار تثبيت Gradle
+ اتركه فارغاً لاستخدام Gradle wrapper.
+ لا يوجد بناء قيد التقدم
+ البناء جارٍ...
+ فشل البناء. راجع إخراج البناء لمزيد من التفاصيل.
+ تم البناء بنجاح
+ فشل الحصول على نص من المحرر
+ البيانات غير صالحة للقصد.
+ حدد مجلد من وحدة التخزين الرئيسية
+ السلطة \'\'%s\' غير مسموح بها
+ استخدام مكتبة ICU
+ استخدم مكتبة ICU لاستخدام استعادة حواف الكلمات للنقر المزدوج والضغط المطول على اختيار الكلمات.
+ مرر لأعلى لعرض @@مخرجات البناء@@
+ استخدام علامة التبويب الناعمة
+ اختر ما إذا كان سيتم استخدام المسافات بدلاً من حرف التبويب (\\t).
+ تبرع
+ إرشادات الإستخدام
+ إغلاق
+ تجاهل الحالة
+ استخدم التعبير النصي (regex)
+ تكوين بناء Gradle.
+ تهيئة
+ عن التطبيق
+ AndroidIDE مفتوح المصدر!
+ اشترك للحصول على أحدث تحديثات.
+ مناقشة الميزات، الأخطاء والتحسينات هنا.
+ ما الجديد في هذا الإصدار؟
+ المزيد عن AndroidIDE.
+ إعدادات IDE العامة.
+ تهيئة المحرر.
+
+ تقليم السطر الجديد النهائي
+ إدراج سطر جديد نهائي
+ إزالة سطر فارغ إضافي في نهاية الملف
+ إدراج سطر جديد فارغ في نهاية الملف.
+ تقسيم السمات
+ تنسيق السمات على سطر جديد
+ الانضمام إلى خطوط CDATA
+ تطبيع المحتوى داخل CDATA.
+ تجميع (ربط) اسطر التعليق
+ تطبيع المحتوى داخل التعليقات.
+ تجميع (ربط) اسطر المحتوى
+ تطبيع المحتوى داخل العناصر.
+ المسافة قبل علامة إغلاق فارغة
+ إدراج مسافة بيضاء قبل وضع علامة إغلاق ذاتي بين قوسين نهائيين.
+ الحفاظ على المحتوى الفارغ
+ الحفاظ على المحتوى الفارغ داخل العناصر (المسافات البيضاء، الخطوط الجديدة، علامات التبويب، إلخ).
+ الحفاظ على فواصل الخط
+ الحفاظ على فواصل الخط بين السمات.
+ إغلاق الأقواس في الخط الجديد
+ ضع القوس المغلق على سطر جديد.
+ تقليم المسافة البيضاء
+ إزالة المسافات البيضاء إضافية في نهاية الخطوط.
+ أقصى عرض للسطر
+ الحد الأقصى لعدد الأحرف التي يجب أن تكون في السطر.
+ فصل حجم العوز للسمات
+ عدد المسافات المراد إضافتها لسمات التقسيم.
+ احتفظ بخطوط جديدة
+ • الحد الأقصى لعدد فترات التوقف المستمرة التي ينبغي الحفاظ عليها.
+ سلوك العناصر الفارغة
+ اختر سلوك التنسيق للعناصر الفارغة.
+ خيارات تنسيق XML
+ تهيئة تنسيق XML
+
+ استخدام خط مخصص
+ في حالة التمكين، سيتم استخدام الملف الموجود على \"/data/com.tom.rv2ide/files/home/.androidide/ui/font.ttf\" كخط محرر.
+ تثبيت APK...
+ هل تريد فتح التطبيق؟
+ خدمة بناء AndroidIDE
+ رمز اللون Hex
+ انتقاء
+ إعداد أذونات قابلة للتنفيذ…
+ ربط %1$s بـ %2$s
+ استخراج مكتبات الرابط…
+ اسم الحزمة فارغ
+ اسم الحزمة غير صالح
+ اسم الحزمة طويل
+ لا يمكن أن يكون الرمز \'_\' أول حرف في شريحة الحزمة
+ لا يمكن أن يكون الرقم أول حرف في شريحة الحزمة
+ الحرف \"%1$s\" غير مسموح به في أسماء حزمة تطبيقات Android
+ يجب أن تحتوي الحزمة على فاصل \'.\' واحد على الأقل
+
+ استيراد الكلاس(ات)
+ إنشاء محدثات (setters)/مستخرجات (getters)
+ اضافة \'اطلاق خطأ\'
+ تعليق السطر
+ إنشاء الفويد الناقصة
+ تحويل إلى مكوّنات
+ إنشاء مولد كلاس (constructor)
+ اضافة الفويد الاساسية
+ حذف الكلاس
+ إزالة الفويد
+ إزالة اطلاقات الاخطاء غير المستخدم
+ قمع تحذير \'غير محدد\'
+ ازالة تعليق السطر
+ تحويل إلى شكل
+ اختر الحقول
+ لم يتم اختيار أي حقل.
+ لا توجد حقول
+ اعادة كتابة فويد الكلاس الاب
+ لم يتم اختيار أي حقل.
+ غير قادر على اعادة كتابة الفويد
+ غير قادر على إنشاء فويد محدثات و مستخرجات
+ حدد فويد لاعادة كتابتها
+ غير قادر على العثور على أي فويد يمكن اعادة كتابتها
+ الانتقال إلى التعريف
+ البحث عن مراجع
+ إنشاء toString()
+ إزالة الامبورت غير المستخدمة
+ تنظيم الاستيراد (امبورت)
+ غير قادر على إنشاء تطبيق toString()
+ toString() تم تجهيزها بالفعل
+ إنشاء مولد كلاس (constructor) مفقود
+ غير قادر على إنشاء المولد
+ المولد بنفس المعطيات (باراميتر) متوفر بالفعل
+ إستبدال
+ استبدال الكل
+ تشغيل المهام
+ البحث عن المهام…
+ الرجاء تحديد المهام لتشغيلها
+ التأكيد
+ سيتم تشغيل المهام التالية، بالترتيب. انقر فوق الزر \'تشغيل\' مرة أخرى للتأكيد.\n\n%1$s
+ جارٍ تحميل المهام...
+
+ نسخ
+ نسخ مشروع Git
+ رابط المشروع
+ نسخ مشروع Git...
+ تم نسخ مشروع Git بنجاح
+ فشل في استنساخ مشروع git
+ حدد سمة من القائمة أدناه
+ عرض التسلسل الهرمي للتخطيط
+ نظام الألوان
+ اختر مخطط الألوان لاستخدامه في المحرر
+ نمط واجهة المستخدم
+ اختر وضع واجهة المستخدم لـ IDE
+ فاتح
+ مظلم
+ اتبع النظام
+ سمة
+ اختر سمة لـ AndroidIDE (تتطلب إعادة التشغيل).
+ تهيئة المشروع
+ فشل التشغيل. يجب تثبيت التطبيق أولاً.
+ التشخيصات مفعلة
+ (تجريبي) ما إذا ينبغي تحليل ملفات مصدر جافا بحثا عن أخطاء أم لا.
+ إعادة تحميل أنظمة الألوان
+ فشل تشغيل مختار الملفات: %1$s
+ أداة خادم API غير متوفرة. تحقق من إخراج البناء وسجلات IDE للأخطاء.
+ حذف الأسطر الفارغة عند المسح
+ ما إذا كان على المحرر حذف الأسطر الفارغة عند المسح للخلف بضغطة واحدة أم لا.
+ حذف التاب عند المسح
+ عند تفعيلها، المحرر سيحذف الفراغات المساوية لعرض التاب (غالبا 4 فراغ) عند الضغط على مسح النص.
+ مزامنة
+ تجاهل التغييرات
+ أصلح الواردات (إمبورت)
+ لم يتم العثور على أسماء الكلاس
+ أي %1$s؟
+ ربط بخدمة التسجيل
+ السماح لهذا التطبيق بربطه مع خدمة تسجيل اللوغ لـ AndroidIDE. هذا الامر مطلوب لـ AndroidIDE لقراءة السجلات (اللوغ) لهذا التطبيق.
+ اسم الإضافة
+ نوع الإضافة
+ أسم إضافة غير صالح
+ القيمة فارغة
+ الملف غير موجود
+ يجب أن يكون مسار إلى ملف
+ اسم الكلاس يحتوي على كلمات مفتاحية
+ يجب أن يكون المسار إلى مجلد
+ اسم ملف التخطيط غير صالح
+ تفاصيل المشروع غير صالحة
+ استخدام سكريبت كوتلن (.kts) لإنشاء ملفات بناء غرادل
+
+ الخصوصية
+ إحصائيات التطبيق
+ ساعدنا في تحسين التطبيق مِن خلال توفير إحصائيات مجهولة المصدر. سوف نجمع المعلومات الأساسية حول جهازك لإحصاءات قاعدة المستخدمين فقط. يمكن عرض البيانات الدقيقة التي تتم مشاركتها في التفضيلات. بياناتك آمنة ولا تتم مشاركتها مع خَدَمَات الجهات الخارجية. يمكنك إلغاء الاشتراك في أي وقت في تفضيلاتك.
+ إحصائيات الإستخدام المجهول
+ مجموعة الإحصائيات
+ السماح بجمع مقاييس التثبيت وإحصائيات الجهاز (مجهول تماما).
+ ايدي مميز
+ الجهاز
+ إصدار التطبيق
+ البلد
+ بناء CPU
+ معاينة البيانات
+ اصدار الاندرويد
+ الاشتراك
+ خيارات المطور
+ خيارات تجريبية/تصحيح أخطاء AndroidIDE
+ تصحيح الأخطاء
+ تفريغ السجلات
+ تفريغ سجلات AndroidIDE إلى $HOME/.androidide/logs
+ قم بتشغيل النسخة التصحيحية (debug) من تطبيقك لعرض السجلات هنا.
+ تم تعطيل إرسال السجل. يمكنك تمكينه في الخيارات.
+ تظهر سجلات من بيئة التطوير المتكاملة هنا.
+ افتح ملف لعرض نتائج التشخيص الخاصة به
+ قم ببناء التطبيق أو تشغيل مهمة لرؤية نتائج بنائه هنا.
+ فشلت في تنفيذ الإجراء.
+ تمكين مرسل السجلات.
+ عند التعطيل، لن يتم عرض سجلات التطبيقات في AndroidIDE.
+
+ Build variants
+ Discard
+ Failed to fetch build variants
+ Choose application
+ Selected build variant not found
+ Disconnect log senders
+ Begin long select
+ Sticky scroll
+ Show the current scope at the top while scrolling the editor.
+ Launch app after installation
+ If enabled, the IDE will (without confirmation) launch the application right after it is installed.
+ Run options
+ Cannot run application. Unable to determine package name.
+ Cannot run application. No application modules found in project.
+ Launch app
+ Experimental
+ Pin line numbers
+ Whether the editor should pin line number panel when scrolled horizontally.
+ Blue Wave
+ Sunny Glow
+ Material You
+ Language
+ Select a language for AndroidIDE.
+ System Default
+ Project directory is not accessible
+ Selected file is not a directory
+ Project directory does not exist
+ A file save operation is already in progress!
+ SDK Installation
+ Install the development tools
+ The development tools must be installed for the IDE to work. Clicking the done button will open terminal to install the tools. To install, follow the instructions here.
Or read the documentation]]>.
+ Welcome
+ Learn, build, launch. All on your Android.
+ Grant
+ Storage
+ Required to access project files.
+ Allow installing APKs built with AndroidIDE.
+ Install packages
+ Permissions
+ AndroidIDE requires the following permissions
+ Please grant the permissions to continue.
+ It seems you\'re offline. Check your internet connection.
+ Heads up! You\'re using cellular data.
+ Heads up! You\'re on a metered network.
+ Disable background data restriction to avoid installation failures.
+ Unable to create terminal session
+ Automatic installation
+ Manual installation
+ Android SDK version
+ JDK version
+ Install Git
+ Install OpenSSH
+ Cannot create session. New sessions are disabled!
+ Install location error
+ Unsupported user
+ Socials
+ Contributors
+ Top community contributors.
+ GitHub Contributors
+ Crowdin Translators
+ Misc
+ Contribute
+ It\'s not just an IDE, it\'s a community. Contribute code, ideas, and passion to AndroidIDE.
+ No application available to handle intent.
+ Open source licenses
+ View open source licenses.
+ JDK version
+ Currently selected: %1$s (requires restart if changed)
+
+ لا توجد تحديثات متاحة
+ فشل التحقق من وجود تحديثات
+ فشل تحميل سجل التغييرات
+ خطأ في جلب سجل التغييرات
+ لم يتم العثور على تحديث متوافق لجهازك
+ فشل التنزيل
+ فشل التنزيل: %s
+ فشل التثبيت
+ لا يمكن فتح المتصفح
+ تحديث متاح
+ تنزيل
+ عرض في المتصفح
+ لاحقًا
+ إلغاء
+ جاري تنزيل التحديث
+ الإصدار الجديد %s متاح!
+ بنية الجهاز: %s
+ رمز الإصدار المستهدف: %d
+ المتغيرات المتاحة: %s
+ جاري التحضير للتنزيل...
+ %d ميجابايت / %d ميجابايت
+ يرجى تمكين 'تثبيت التطبيقات غير المعروفة' والمحاولة مرة أخرى
+ خطأ HTTP: %d
+ خطأ في جلب معلومات التحديث
+ خطأ في تحليل معلومات التحديث
+ الإصدار الحالي: %d، الإصدار المتاح: %d للبنية: %s
+ لم يتم العثور على متغير متوافق للبنية: %s
+ الحزمة غير موجودة
+ ABIs المدعومة: %s
+ لم يتم العثور على بنية معروفة، سيتم الرجوع إلى armeabi-v7a
+ بنية الجهاز: %s
+ لم يتم العثور على تطابق تام لـ %s، جاري تجربة البدائل
+ استخدام armeabi-v7a كبديل لـ arm64-v8a
+ استخدام x86 كبديل لـ x86_64
+ لم يتم العثور على تطابق تام للبنية، سيتم استخدام أول متغير متاح
+ خطأ في تنزيل APK
+ خطأ في تنزيل APK
+ خطأ في تثبيت APK
+ خطأ في فتح المتصفح
-
diff --git a/gradle.properties b/gradle.properties
index a2f173530..a16fb142d 100755
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,32 +1,122 @@
-## For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-#
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-# Default value: -Xmx1024m -XX:MaxPermSize=256m
-# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
-#
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-#Wed Feb 02 13:50:55 IST 2022
+# Project-wide Gradle settings for Android Code Studio
+# This file is used to configure the Gradle build system.
+# For more details, see: https://docs.gradle.org/current/userguide/build_environment.html
+
+## ----------------------------------------------------------------------
+## Gradle Daemon & Performance
+## ----------------------------------------------------------------------
+
+# Enable the Gradle daemon to improve startup and build times.
+org.gradle.daemon=true
+
+# Run builds in parallel (requires decoupled projects).
+org.gradle.parallel=true
+
+# Enable build caching to reuse task outputs.
+org.gradle.caching=true
+
+# Configure the number of concurrent threads used by Gradle.
+# If not set, Gradle uses the number of CPU cores.
+# org.gradle.workers.max=4
+
+## ----------------------------------------------------------------------
+## JVM Arguments for the Gradle Daemon
+## ----------------------------------------------------------------------
+# Memory allocation and module opens required for JDK 16+.
org.gradle.jvmargs=-Xmx4096M \
-Dkotlin.daemon.jvm.options\="-Xmx4096M" \
-XX:+HeapDumpOnOutOfMemoryError \
--add-opens java.base/java.lang=ALL-UNNAMED \
--add-opens java.base/java.util=ALL-UNNAMED \
--add-opens java.base/java.io=ALL-UNNAMED
+
+## ----------------------------------------------------------------------
+## Android Build Configuration
+## ----------------------------------------------------------------------
+
+# Use AndroidX (required for modern Android development).
android.useAndroidX=true
+
+# Disable Jetifier because all dependencies are already AndroidX.
android.enableJetifier=false
+
+# Exclude specific JARs from Jetifier (if any). This line prevents a known conflict.
android.jetifier.ignorelist=common-30.2.2.jar
-# TODO : Migrate
+# Whether R classes are non-transitive. 'false' means R is transitive (default for older AGP).
+# TODO: Migrate to non-transitive R class for better build performance (requires AGP 8.0+).
android.nonTransitiveRClass=false
+# Enable generation of BuildConfig by default (can be overridden per module).
+android.defaults.buildfeatures.buildconfig=true
+
+# Use non-final resource IDs (helps with view binding in libraries).
+# android.nonFinalResIds=false # Uncomment if needed.
+
+# Explicitly set R8 version (code shrinker). Must be compatible with AGP version.
+android.r8.version=8.6.17
+
+## ----------------------------------------------------------------------
+## Kotlin Configuration
+## ----------------------------------------------------------------------
+
+# Kotlin code style (official or obfuscating).
+kotlin.code.style=official
+
+# Allow Kotlin to use experimental features (if required).
+# kotlin.incremental=true
+# kotlin.incremental.java=true
+# kotlin.incremental.js=true
+
+# Kotlin compiler arguments (example, adjust as needed).
+# kotlin.options.freeCompilerArgs += [
+# "-Xjvm-default=enable",
+# "-Xopt-in=kotlin.RequiresOptIn"
+# ]
+
+## ----------------------------------------------------------------------
+## Compile Options
+## ----------------------------------------------------------------------
+
+# Set Java compatibility to 11 or 17 (must match JDK version).
+# These are usually defined in module build files, but can be set here.
+# android.compileOptions.sourceCompatibility=11
+# android.compileOptions.targetCompatibility=11
+
+# Enable data binding / view binding if needed.
+# android.databinding.enabled=true
+# android.viewBinding.enabled=true
+
+## ----------------------------------------------------------------------
+## Dependency Resolution
+## ----------------------------------------------------------------------
+
+# Force Gradle to use HTTPS for protocol versions.
systemProp.https.protocols=TLSv1,TLSv1.1,TLSv1.2
-org.gradle.caching=true
+
+# Use strict dependency versions (optional).
+# dependency.verification=strict
+
+## ----------------------------------------------------------------------
+## Build Cache & Configuration Cache (Experimental)
+## ----------------------------------------------------------------------
+
+# Enable configuration cache (speeds up subsequent builds).
+# Note: May cause issues with some plugins; enable with caution.
# org.gradle.configuration-cache=true
-org.gradle.parallel=true
-org.gradle.daemon=true
-android.r8.version=8.6.17
\ No newline at end of file
+
+# If configuration cache is enabled, also enable this for better performance.
+# org.gradle.configuration-cache.parallel=true
+
+## ----------------------------------------------------------------------
+## Miscellaneous
+## ----------------------------------------------------------------------
+
+# Gradle's internal logging level (quiet, warn, lifecycle, info, debug).
+# org.gradle.logging.level=quiet
+
+# Set file encoding to UTF-8 (important for internationalization).
+# org.gradle.jvmargs += -Dfile.encoding=UTF-8 # Already included in the JVM args above.
+
+# Version catalog support (if using libs.versions.toml).
+# enableFeaturePreview("VERSION_CATALOGS")