7 Commits

Author SHA1 Message Date
Imran Remtulla
2d31106e68 fix: keep newer docker/ and sign.sh from dev (overwritten by f85309b9 revert) 2026-06-29 22:09:34 +01:00
Imran Remtulla
83f22e975e fix: revert non-lib files to f85309b9 (last known good release APK)
The release crash was a native SIGSEGV in libflutter.so caused by an
ABI mismatch. Commit f85309b9 was the last one that produced a working
release APK. All files outside lib/ that changed since then are reverted
to that commit: android/ build config, pubspec, build.sh, sign.sh,
docker, .gitignore, analysis_options.yaml, and the .flutter submodule.
The Dart source code in lib/ is deliberately kept at its current state.

Also adds a minimal proguard-rules.pro (2 lines) with -dontwarn for
androidx.window.extensions/sidecar, which R8 needs to complete the build.
2026-06-29 22:07:18 +01:00
Imran Remtulla
b7d6202776 Rewrite Docker build image: CI-aligned environment, submodule Flutter
Toolchain-only image matching .github/workflows/release.yml: ubuntu 24.04, Temurin JDK 21, AGP-managed Android SDK (NDK/cmake auto-downloaded on demand). Flutter is NOT installed in the image - it comes from the repo's pinned .flutter submodule at runtime, keeping the Flutter version reproducible and consistent with build.sh.

Dockerfile: ubuntu 24.04, Temurin 21 via Adoptium API, Android SDK base only (platform-tools + build-tools 35 + platform 35), NDK/cmake left to AGP auto-download, ANDROID_HOME writable for runtime installs. Fixed 'git 2.x' typo, dropped desktop/GTK deps + emulator + extra platforms, consolidated apt layers, modern syntax.

builder.sh: mounts just the repo, runs as $(id -u):$(id -g), puts .flutter/bin first on PATH, TTY only when interactive, passes through commands for CI use ($*). No fixed --name or --net host.

mkbuilder.sh: build context is docker/ (not the whole repo - avoids shipping the multi-GB .flutter submodule to the daemon for a Dockerfile that COPYs nothing), tags :latest + timestamp.
2026-06-29 10:00:55 +01:00
Imran Remtulla
56bb9d7024 Fix bugs, add robustness, improve performance and architecture
Bugs:
- Indonesian locale 'in' → 'id' so translations are found (id.json)
- sign.sh: keystore password via env: (not command line); apksigner
  found via find|sort -V instead of fragile ls|tail -1
- font sizes 11/12 now use Theme.of(context).textTheme tokens
- textTheme.labelSmall! null assertion replaced with safe ?.
- download progress indicator wrapped in Semantics for a11y

Architecture / robustness:
- Side effects (_manageServices, _handleFirstRun, checkLaunchByNotif)
  moved out of build() into initState + SettingsProvider listener
- createHttpClient sets connectionTimeout: 30s
- Error-swallowing catch blocks in source matching now log to LogsProvider
- HttpClient lifecycle: httpClientResponseStreamToFinalResponse now
  closes client in finally block
- JSON migration failure sets compatVersion to prevent re-trigger
- Icon cache cleanup on removeApps
- FG/BG state sync: static timestamp tells foreground to reload when
  background task saves to disk
- Concurrent download polling capped at ~5 minutes (43 iterations)

Performance:
- _pipelineSignature: 6 fields/app instead of 17
- .asBroadcastStream() removed from download stream
- DeviceInfoPlugin() cached in apkpure.dart (was called twice per update)

Config / i18n:
- New config_keys.dart: 30 typed AppConfigKey constants replacing
  raw string literals in AppSource form item definitions
- easy_localization implementation imports justified with comment

HTTP extraction:
- HttpClientMixin extracted from AppSource for getRequestHeaders

Build / deps:
- Gradle: deprecated allprojects {} replaced with
  dependencyResolutionManagement (PREFER_PROJECT mode)
- Android build dirs added to .gitignore
- Dockerfile: removed pre-installed NDK 26.3 (AGP auto-downloads 28.2),
  consolidated SDK RUN layers into one
- Third-party git deps pinned to commit SHAs
2026-06-28 22:25:33 +01:00
Imran Remtulla
0a30bf6d8e Update to Java 21 + hardcode NDK to avoid warnings 2025-05-31 03:57:16 -04:00
Imran Remtulla
195c0d1f11 Update Kotlin version (to enable Docker builder) + update Dockerfile 2025-05-17 21:56:32 -04:00
Fmstrat
d9c29c6751 add support for building via a docker container [remote dev] 2025-02-26 23:18:02 +00:00