3636 Commits

Author SHA1 Message Date
topjohnwu
42fa348357 Address several lint issues 2026-04-15 15:54:19 +00:00
topjohnwu
80e2849f3f Move InstallBottomSheet into its own file
Assist-by: Gemini
2026-04-15 15:54:19 +00:00
topjohnwu
859ba80e43 Port new download feature to apk-ng
Assist-by: Gemini
2026-04-15 15:54:19 +00:00
topjohnwu
77ea982963 Update gradle dependencies 2026-04-15 15:54:19 +00:00
Radoš Milićev
be7a4b4dcc Update Serbian translations (Cyrillic & Latin) 2026-04-14 23:02:55 +00:00
topjohnwu
7976897ace Switch over to use Wire
Assisted-by: Gemini
2026-04-14 10:24:16 +00:00
vvb2060
bdcd938d74 app: delete unused files 2026-04-14 10:24:16 +00:00
vvb2060
27688120b4 app: update zh-rCN translation 2026-04-14 10:24:16 +00:00
vvb2060
483901f3cd app: use userspace copy 2026-04-14 10:24:16 +00:00
vvb2060
4ee1590cc8 app: add local file supports for HttpFileChannel 2026-04-14 10:24:16 +00:00
vvb2060
b9d21071fc app: support download image and patch 2/2 2026-04-14 10:24:16 +00:00
vvb2060
e70e8088ad app: support download image and patch 1/2 2026-04-14 10:24:16 +00:00
vvb2060
069bbc4837 app: auto measure width 2026-04-14 10:24:16 +00:00
topjohnwu
7d5942a3bc Remove unused code 2026-04-14 07:16:59 +00:00
topjohnwu
81413b0f10 Remove hardcoded strings in apk-ng 2026-04-14 07:16:59 +00:00
𝗛𝗼𝗹𝗶
4890935866 Update Turkish
Sync Turkish translations with the latest English strings and improve overall terminology.
2026-04-09 09:32:22 +00:00
topjohnwu
8a0dfb383e Update gradle dependencies 2026-04-08 05:29:57 +00:00
topjohnwu
240b6db1cc Move stub resources into its own module
Stop relying on internal AGP intermediate paths in the build directory.
Use standard AGP classes to achieve the same result
2026-04-08 05:29:57 +00:00
topjohnwu
da512b9b1f Delete previously generated component classes in stub 2026-04-08 05:29:57 +00:00
topjohnwu
d95918dc15 Cleanup PreferenceConfig 2026-04-08 05:29:57 +00:00
topjohnwu
fd1f403bac Use tools:sdk-common for build-logic 2026-04-08 05:29:57 +00:00
Neebe3289
9dc9b20292 Update Indonesian translations
Change-Id: I8243d30f8df1fb9c9aabff85c081db3dba9695b1
2026-03-31 20:55:59 +00:00
Arbri çoçka
8a014412c5 Update strings.xml sq 2026-03-31 18:59:05 +00:00
topjohnwu
3cb18d6c1e Disable Kotlin for stub
We need to do it after switching to built-in Kotlin
2026-03-27 08:40:46 +00:00
topjohnwu
d5476e1321 Switch over to use composite build-logic
Using buildSrc comes with too many caveats, switch over to a composite
build-logic solves a lot of buildSrc's issue.
2026-03-27 08:40:46 +00:00
topjohnwu
6f93f74f80 app-ng: Fix several compile warnings 2026-03-21 06:57:09 +00:00
topjohnwu
3021ef46ee Redesign status card
Assist-by: Gemini
2026-03-20 19:38:34 +00:00
topjohnwu
945c83f4af Update gradle dependencies 2026-03-20 19:38:34 +00:00
topjohnwu
b9d64bfdf9 Remove all legacy themes and AppCompatActivity 2026-03-20 19:38:34 +00:00
topjohnwu
a59e651269 Manual UI tweaking 2026-03-20 19:38:34 +00:00
topjohnwu
4eba69c892 Redesign the home screen
Assist-by: Gemini
2026-03-20 19:38:34 +00:00
topjohnwu
e2a437ebfc Switch to Google Material 3 library
Made-with: Gemini
2026-03-20 19:38:34 +00:00
topjohnwu
9035a94804 Make build.py generate flags.prop for app projects
Reduce logic duplication in build.py and app/buildSrc. The ground truth
is always build.py, so dump all information into a file so the gradle
projects are always in sync with the rest of the project.
2026-03-18 01:49:38 -07:00
Neebe3289
59eca3fd0a Update Indonesian translations
Change-Id: I5677410a0d767f54f0fe7fe74695d117d33d69c0
2026-03-18 00:11:11 -07:00
topjohnwu
e4f4239f5c Re-integrate old app implementation into project 2026-03-16 03:36:43 -07:00
topjohnwu
debf1800d8 Merge next generation app impl into master 2026-03-16 03:35:08 -07:00
topjohnwu
7008c563e8 Rename apk to preserve history after future merge 2026-03-16 03:34:32 -07:00
topjohnwu
62c6ab8c0a Move apk module to apk-ng
In preparation to preserve the existing old apk module codebase so
that the old implementation can live side-by-side the next generation.
2026-03-16 03:25:47 -07:00
topjohnwu
6242a605f5 Optimize imports 2026-03-16 02:56:03 -07:00
LoveSy
2a5ff26e22 Fix module install showing script help due to unescaped single quotes
The command passed to busybox `script -c '...'` contained embedded
single quotes (from echo and file path), breaking the outer quoting.
Escape them with the standard POSIX `'\''` technique before wrapping.

Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
4bfb9d820f Add padding and center alignment to log empty state text
Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
b02f52f283 Add windowSoftInputMode adjustResize to MainActivity
Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
6771f1141b Improve Core/App card alignment and exclude unused native lib
- Use Box with weight(1f) for card content so text gets full width
- Pin Install/Reinstall button to bottom with fixed height for alignment
- Exclude libandroidx.graphics.path.so from APK (Java fallback exists)

Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
c4ddebfa73 Remove bottom action buttons from Log tabs, keep only TopAppBar actions
Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
a211541fc3 Use tristate checkbox for denylist package toggle
Bump miuix to 0.8.6 and migrate Checkbox to the new ToggleableState
API. The package-level checkbox now shows indeterminate state when
only some processes are selected.

Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
4d758f871b Replace Termux terminal libraries with custom read-only Kotlin implementation
Fork and heavily simplify terminal-emulator/terminal-view from Termux into
a self-contained Kotlin terminal package. Remove all library-style abstractions
(TerminalOutput, TerminalSessionClient, Logger) and dead code (mouse events,
paste, key input) since the terminal is read-only. The emulator creates a PTY
via busybox script for proper escape sequence support. The UI is a pure Compose
Canvas with scroll support, replacing the old AndroidView-based approach.

Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
162b84661b Fix blank flash screen and crash when flashing module zips
FlashScreen's useTerminal was a plain getter on flashAction, which was
only set in LaunchedEffect (after first composition). Since it wasn't
a Compose State, no recomposition occurred, leaving the screen stuck on
an empty LazyColumn. The unreachable TerminalComposeView meant
onEmulatorReady was never called, hanging the coroutine and eventually
crashing the process.

Pass the action from the route key directly to FlashScreen so it can
pick the correct UI path on the very first composition.

Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
b087cb2876 Use MarkdownText for release notes in core install bottom sheet
Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
299350cb7b Remove watermark icon and background color from CoreCard
Made-with: Cursor
2026-03-16 02:56:03 -07:00
LoveSy
ab93c22750 Hide Modules and Superuser tabs when Magisk is not activated
Filter out disabled tabs from the pager and navigation bar instead
of showing them as greyed-out, preventing swipe access to unavailable
screens.

Made-with: Cursor
2026-03-16 02:56:03 -07:00