Commit 5a00191
committed
feat(details): implement external installer support for APK installations
This commit introduces the ability to open downloaded APKs with external system installers. This serves as a fallback mechanism when direct installation permissions are blocked by device policies or are unavailable.
- **feat(core)**: Added `openWithExternalInstaller` to the `Installer` interface and implemented it for Android using `FileProvider` and `ACTION_VIEW` intent.
- **feat(details)**: Introduced `DetailsAction.OpenWithExternalInstaller` and `DetailsAction.InstallWithExternalApp` to handle external installation flows in `DetailsViewModel`.
- **feat(details)**: Added an alert dialog prompt that appears when direct installation is blocked, offering the user to open the APK with an external tool.
- **feat(details)**: Updated the installation dropdown menu in the header to include an "Open with external installer" option.
- **feat(details)**: Added new logging states (`PermissionBlocked`, `OpenedInExternalInstaller`) to track and display the status of external installation attempts.
- **i18n**: Added string resources for external installer prompts, logs, and descriptions across multiple languages (English, Turkish, Chinese, Bengali, Spanish, French, Hindi, Italian, Japanese, Korean, Polish, Russian).
- **refactor(details)**: Adjusted the installation flow in `DetailsViewModel` to check for permissions after download, allowing for a graceful fallback to external installers.1 parent b154c49 commit 5a00191
File tree
22 files changed
+315
-6
lines changed- core
- data/src
- androidMain/kotlin/zed/rainxch/core/data/services
- jvmMain/kotlin/zed/rainxch/core/data/services
- domain/src/commonMain/kotlin/zed/rainxch/core/domain/system
- presentation/src/commonMain/composeResources
- values-bn
- values-es
- values-fr
- values-hi
- values-it
- values-ja
- values-kr
- values-pl
- values-ru
- values-tr
- values-zh-rCN
- values
- feature/details/presentation/src/commonMain/kotlin/zed/rainxch/details/presentation
- components/sections
- model
- utils
22 files changed
+315
-6
lines changedLines changed: 23 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
215 | 238 | | |
216 | 239 | | |
217 | 240 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
65 | 69 | | |
66 | 70 | | |
67 | 71 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
33 | 35 | | |
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
212 | 218 | | |
213 | 219 | | |
214 | 220 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
160 | 166 | | |
161 | 167 | | |
162 | 168 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
160 | 166 | | |
161 | 167 | | |
162 | 168 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
212 | 218 | | |
213 | 219 | | |
214 | 220 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
212 | 218 | | |
213 | 219 | | |
214 | 220 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
160 | 166 | | |
161 | 167 | | |
162 | 168 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
210 | 216 | | |
211 | 217 | | |
212 | 218 | | |
| |||
0 commit comments