Skip to content

Commit 94c39e7

Browse files
authored
Merge branch 'master' into localization
2 parents f1ee78a + 75e8643 commit 94c39e7

67 files changed

Lines changed: 5141 additions & 107 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ body:
6262
label: Version
6363
description: What version of aShellYou are you running?
6464
options:
65-
- v7.3.0 (Latest)
65+
- v7.4.0 (Latest)
66+
- v7.3.0
6667
- v7.2.1
6768
- v7.2.0
6869
- v7.1.0

.github/ISSUE_TEMPLATE/crash_report.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ body:
5252
label: Version
5353
description: What version of aShellYou are you running?
5454
options:
55-
- v7.3.0 (Latest)
55+
- v7.4.0 (Latest)
56+
- v7.3.0
5657
- v7.2.1
5758
- v7.2.0
5859
- v7.1.0

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "app/src/main/cpp/llama.cpp"]
2+
path = app/src/main/cpp/llama.cpp
3+
url = https://github.com/ggml-org/llama.cpp.git

app/.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
/build
1+
/build/
2+
/.cxx/

app/build.gradle.kts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,18 @@ android {
2626
applicationId = "in.hridayan.ashell"
2727
minSdk = 28
2828
targetSdk = 36
29-
versionCode = 62
30-
versionName = "v7.4.0"
29+
versionCode = 63
30+
versionName = "v7.5.0"
3131

3232
buildConfigField("String", "DIST_FLAVOR_GITHUB", "\"$flavorGitHub\"")
3333
buildConfigField("String", "DIST_FLAVOR_FDROID", "\"$flavorFDroid\"")
3434

3535
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
36+
37+
ndk {
38+
//noinspection ChromeOsAbiSupport
39+
abiFilters += setOf("arm64-v8a", "armeabi-v7a")
40+
}
3641
}
3742

3843
lint {
@@ -117,6 +122,13 @@ android {
117122
generateLocaleConfig = true
118123
}
119124

125+
externalNativeBuild {
126+
cmake {
127+
path = file("src/main/cpp/CMakeLists.txt")
128+
version = "3.22.1"
129+
}
130+
}
131+
120132
packaging {
121133
resources {
122134
excludes += setOf(

app/lint-baseline.xml

Lines changed: 73 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -56,39 +56,6 @@
5656
column="17"/>
5757
</issue>
5858

59-
<issue
60-
id="GradleDependency"
61-
message="A newer version of androidx.compose.animation:animation than 1.11.1 is available: 1.11.2"
62-
errorLine1="composeAnimation = &quot;1.11.1&quot;"
63-
errorLine2=" ~~~~~~~~">
64-
<location
65-
file="$HOME/StudioProjects/aShellYou/gradle/libs.versions.toml"
66-
line="7"
67-
column="20"/>
68-
</issue>
69-
70-
<issue
71-
id="GradleDependency"
72-
message="A newer version of androidx.compose:compose-bom than 2026.05.00 is available: 2026.05.01"
73-
errorLine1="composeBom = &quot;2026.05.00&quot;"
74-
errorLine2=" ~~~~~~~~~~~~">
75-
<location
76-
file="$HOME/StudioProjects/aShellYou/gradle/libs.versions.toml"
77-
line="8"
78-
column="14"/>
79-
</issue>
80-
81-
<issue
82-
id="GradleDependency"
83-
message="A newer version of androidx.compose.material3:material3 than 1.5.0-alpha19 is available: 1.5.0-alpha20"
84-
errorLine1="material3 = &quot;1.5.0-alpha19&quot;"
85-
errorLine2=" ~~~~~~~~~~~~~~~">
86-
<location
87-
file="$HOME/StudioProjects/aShellYou/gradle/libs.versions.toml"
88-
line="31"
89-
column="13"/>
90-
</issue>
91-
9259
<issue
9360
id="NewerVersionAvailable"
9461
message="A newer version of dev.rikka.shizuku:api than 13.1.0 is available: 13.1.5"
@@ -118,18 +85,29 @@
11885
errorLine2=" ~~~~~~~~~~~~">
11986
<location
12087
file="src/main/java/in/hridayan/ashell/core/presentation/components/dialog/DialogKey.kt"
121-
line="56"
88+
line="57"
12289
column="15"/>
12390
</issue>
12491

92+
<issue
93+
id="ModifierParameter"
94+
message="Modifier parameter should be the first optional parameter"
95+
errorLine1=" modifier: Modifier = Modifier"
96+
errorLine2=" ~~~~~~~~">
97+
<location
98+
file="src/main/java/in/hridayan/ashell/ai/presentation/ui/components/AnalyzeButton.kt"
99+
line="22"
100+
column="5"/>
101+
</issue>
102+
125103
<issue
126104
id="Typos"
127105
message="Repeated word &quot;de&quot; in message: possible typo"
128-
errorLine1=" &lt;string name=&quot;changelog_v3_5_0&quot;>\nSe renovó por completo la sección Acerca de de la aplicación.\nSe añadieron accesos directos desde el launcher.\nSe corrigió que el menú de navegación no apareciera con la navegación por botones.\nSe mejoró la visibilidad del menú de navegación inferior al desplazarse.\nSe añadió compatibilidad con idioma por aplicación para aShell You (las traducciones aún no están completas).\nMuchas optimizaciones de código.&lt;/string>"
106+
errorLine1=" &lt;string name=&quot;changelog_v3_5_0&quot;>\nSe renovó por completo la sección Acerca de de la aplicación.\nSe añadieron accesos directos desde el lanzador.\nSe corrigió que el menú de navegación no apareciera con la navegación por botones.\nSe mejoró la visibilidad del menú de navegación inferior al desplazarse.\nSe añadió compatibilidad con idioma por aplicación para aShell You (las traducciones aún no están completas).\nMuchas optimizaciones de código.&lt;/string>"
129107
errorLine2=" ~~~~~">
130108
<location
131109
file="src/main/res/values-es-rES/strings.xml"
132-
line="601"
110+
line="602"
133111
column="80"/>
134112
</issue>
135113

@@ -140,7 +118,7 @@
140118
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
141119
<location
142120
file="src/main/res/values/strings.xml"
143-
line="30"
121+
line="34"
144122
column="5"/>
145123
</issue>
146124

@@ -151,7 +129,7 @@
151129
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
152130
<location
153131
file="src/main/res/values/strings.xml"
154-
line="96"
132+
line="103"
155133
column="5"/>
156134
</issue>
157135

@@ -162,7 +140,7 @@
162140
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
163141
<location
164142
file="src/main/res/values/strings.xml"
165-
line="100"
143+
line="107"
166144
column="5"/>
167145
</issue>
168146

@@ -173,7 +151,7 @@
173151
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
174152
<location
175153
file="src/main/res/values/strings.xml"
176-
line="109"
154+
line="116"
177155
column="5"/>
178156
</issue>
179157

@@ -184,7 +162,7 @@
184162
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
185163
<location
186164
file="src/main/res/values/strings.xml"
187-
line="119"
165+
line="126"
188166
column="5"/>
189167
</issue>
190168

@@ -195,7 +173,7 @@
195173
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
196174
<location
197175
file="src/main/res/values/strings.xml"
198-
line="120"
176+
line="127"
199177
column="5"/>
200178
</issue>
201179

@@ -206,7 +184,7 @@
206184
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
207185
<location
208186
file="src/main/res/values/strings.xml"
209-
line="221"
187+
line="233"
210188
column="5"/>
211189
</issue>
212190

@@ -217,7 +195,7 @@
217195
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
218196
<location
219197
file="src/main/res/values/strings.xml"
220-
line="232"
198+
line="244"
221199
column="5"/>
222200
</issue>
223201

@@ -228,7 +206,7 @@
228206
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
229207
<location
230208
file="src/main/res/values/strings.xml"
231-
line="233"
209+
line="245"
232210
column="5"/>
233211
</issue>
234212

@@ -239,7 +217,7 @@
239217
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
240218
<location
241219
file="src/main/res/values/strings.xml"
242-
line="234"
220+
line="246"
243221
column="5"/>
244222
</issue>
245223

@@ -250,7 +228,7 @@
250228
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
251229
<location
252230
file="src/main/res/values/strings.xml"
253-
line="303"
231+
line="315"
254232
column="5"/>
255233
</issue>
256234

@@ -261,7 +239,18 @@
261239
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
262240
<location
263241
file="src/main/res/values/strings.xml"
264-
line="329"
242+
line="346"
243+
column="5"/>
244+
</issue>
245+
246+
<issue
247+
id="PluralsCandidate"
248+
message="Formatting %d followed by words (&quot;days&quot;): This should probably be a plural rather than a string"
249+
errorLine1=" &lt;string name=&quot;n_days&quot;>%d days&lt;/string>"
250+
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
251+
<location
252+
file="src/main/res/values/strings.xml"
253+
line="347"
265254
column="5"/>
266255
</issue>
267256

@@ -279,6 +268,42 @@
279268
file="$GRADLE_USER_HOME/caches/9.5.0/transforms/a36a2908daccc9867cfb425e6eff2cbd/transformed/out/jars/classes.jar"/>
280269
</issue>
281270

271+
<issue
272+
id="TrustAllX509TrustManager"
273+
message="`checkClientTrusted` is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers">
274+
<location
275+
file="$GRADLE_USER_HOME/caches/modules-2/files-2.1/com.google.http-client/google-http-client/2.1.0/f4c08fa160a5199af19f81080fbaa921ae2193c7/google-http-client-2.1.0.jar"/>
276+
</issue>
277+
278+
<issue
279+
id="TrustAllX509TrustManager"
280+
message="`checkServerTrusted` is empty, which could cause insecure network traffic due to trusting arbitrary TLS/SSL certificates presented by peers">
281+
<location
282+
file="$GRADLE_USER_HOME/caches/modules-2/files-2.1/com.google.http-client/google-http-client/2.1.0/f4c08fa160a5199af19f81080fbaa921ae2193c7/google-http-client-2.1.0.jar"/>
283+
</issue>
284+
285+
<issue
286+
id="ObsoleteSdkInt"
287+
message="Unnecessary; `SDK_INT` is always >= 28"
288+
errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
289+
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
290+
<location
291+
file="src/main/java/in/hridayan/ashell/ai/service/AiModelDownloadService.kt"
292+
line="45"
293+
column="17"/>
294+
</issue>
295+
296+
<issue
297+
id="ObsoleteSdkInt"
298+
message="Unnecessary; `SDK_INT` is always >= 28"
299+
errorLine1=" if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"
300+
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
301+
<location
302+
file="src/main/java/in/hridayan/ashell/ai/service/AiModelDownloadService.kt"
303+
line="205"
304+
column="13"/>
305+
</issue>
306+
282307
<issue
283308
id="ObsoleteSdkInt"
284309
message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 28. Merge all the resources in this folder into `mipmap-anydpi`.">
@@ -619,17 +644,6 @@
619644
column="1"/>
620645
</issue>
621646

622-
<issue
623-
id="UnusedResources"
624-
message="The resource `R.drawable.ic_schedule` appears to be unused"
625-
errorLine1="&lt;vector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;"
626-
errorLine2="^">
627-
<location
628-
file="src/main/res/drawable/ic_schedule.xml"
629-
line="1"
630-
column="1"/>
631-
</issue>
632-
633647
<issue
634648
id="UnusedResources"
635649
message="The resource `R.drawable.ic_scroll` appears to be unused"

app/proguard-rules.pro

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,12 @@
7474
# ─────────────────────────────────────────────────────────────────────────────
7575
-keep class in.hridayan.ashell.settings.data.SettingsKeys { *; }
7676
-keep class in.hridayan.ashell.settings.data.SettingsKeys$* { *; }
77+
78+
# ─────────────────────────────────────────────────────────────────────────────
79+
# AI Command Analysis – JNI bridge and serializable models
80+
# ─────────────────────────────────────────────────────────────────────────────
81+
-keep class in.hridayan.ashell.ai.native.LlamaCppBridge { *; }
82+
-keep enum in.hridayan.ashell.ai.domain.model.** { *; }
83+
-keep class in.hridayan.ashell.ai.data.local.database.AiCacheEntity { *; }
84+
-keep class in.hridayan.ashell.ai.domain.model.AnalysisResult { *; }
85+
-keep class in.hridayan.ashell.ai.domain.model.CorrectionSuggestion { *; }

app/src/main/AndroidManifest.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
android:name="android.permission.FOREGROUND_SERVICE"
2222
tools:ignore="ForegroundServicesPolicy" />
2323
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" />
24+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
2425

2526
<uses-feature android:name="android.hardware.usb.host" />
2627
<uses-permission android:name="android.permission.USB_PERMISSION" />
@@ -106,6 +107,12 @@
106107
android:exported="false"
107108
android:foregroundServiceType="connectedDevice" />
108109

110+
<service
111+
android:name=".ai.service.AiModelDownloadService"
112+
android:enabled="true"
113+
android:exported="false"
114+
android:foregroundServiceType="dataSync" />
115+
109116
<service
110117
android:name=".qstiles.service.tiles.Tile01Service"
111118
android:enabled="true"

app/src/main/assets/crowdin/translation_progress.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"androidCode": "fr-rFR",
4242
"editorCode": "fr",
4343
"locale": "fr-FR",
44-
"translationProgress": 76,
44+
"translationProgress": 75,
4545
"approvalProgress": 0
4646
},
4747
{

0 commit comments

Comments
 (0)