Commit Graph

30 Commits

Author SHA1 Message Date
874370f34a Merge branch 'master' into installer-improvements 2022-01-04 23:34:54 +01:00
3ea8cd8c66 Resolve SecurityException in installer, tweak installed notification.
Catch and ignore SecurityExceptions when cleaning up old installer
sessions. Catch and ignore session opening exceptions.

Reduce timeout for "Installed" notifications to 5s (as it was before).

Revert removal of intent data for the install prompt notification.
2022-01-04 20:50:48 +11:00
375ab23edb Improve install notifications, improve DefaultInstaller, misc. clean-up
Installer notifications have their own channel, their tags have been
fixed, and the timeout has been properly set instead of using sleep.

Ensured that DefaultInstaller's sessions use unique file names. Also
improved error handling by including broken pipes and by preventing
post-copy operations if an error has occurred.

Some cleaning up has been done in Common, DownloadService, and
SyncService. A few changes have been cherry-picked from master.
2022-01-04 20:26:07 +11:00
e1fc3c656a Make auto-update default on Android 12+ & stop background prompts.
Sets preference for auto updates to true by default if device runs
Android 12 and later.

Reverts change allowing the install prompt to show up from the
background and instead require the notification on all Android versions.
2022-01-04 16:21:08 +11:00
fce311098d Implement automatic updates after repository sync
Initial implementation of fully automatic updates, allowing apps to be
updated after a repo sync has been completed. It can be enabled with a
new preference in settings.

Implemented by greatly modifying SyncService to allow updates to be run
on every completed sync before notifications would be outputted. Note
that the update notification no longer appears if auto updates are
enabled.

BuildConfig.DEBUG is used to force syncing to run to completion, even if
there are no changes to the repos. This allow reliable testing by
turning the sync button into an "update all" button. This should be
removed once an "Update all" button has been implemented in the updates
tab.

Cache file checking in DefaultInstaller is now more robust.
2022-01-03 20:21:36 +11:00
adf305ffc0 Prevent DefaultInstaller from working on a non-existent cache file.
Ensures that the cache file exists before attempting an install using
it. This fixes a crash that can occur if the file is not yet available,
likely due to an I/O-related race condition.
2022-01-03 19:20:00 +11:00
73ac718ce2 Fix install prompt notification, further automate updates/installs.
Fixes "tap to install" notification not launching an activity. Install
notifications moved to InstallerService so that we only show them for
apps that need intervention (and lets us preserve our install session).

All installs go to the installer, allowing for downloads to jump
straight into installation if possible (auto updates or showing prompt
on A9 and earlier). If a prompt is needed, the notification is still
shown.

Additional utility function checks if app is in the foreground. Used to
ensure that we do not launch a prompt that cannot be launched.

Miscellaneous comments have been added and improved.
2021-12-31 10:41:45 +11:00
4778f128f2 Fix: Common content calls 2021-12-24 15:07:45 +01:00
6eb3b96a83 Improve: Remove "Installed" Notification after 5 seconds
Improve: Scrolling performance in AppDetail
2021-12-19 23:29:54 +05:30
ef1036d8c7 Fix: Root installer 2021-12-16 00:53:40 +01:00
96d8c58a0a Optimize Installer 2021-12-06 00:47:13 +05:30
848c5ce863 Legit Material3 Theming 1/5 (style/colors.xml)
Chnage Source code Icon (Touches #127)
Some code cleanups
etc... (Sry I forgot what all I did)
2021-12-03 00:37:55 +05:30
9d05e29481 Update: Use single PackageInstaller for Default 2021-11-25 23:24:57 +05:30
a7728d75f2 Improve: Delete Cached File After Uninstall 2021-11-25 23:24:56 +05:30
84d951328d Improve: Use Default for non-IO operations 2021-11-24 09:04:53 +05:30
5081e1f017 Sry but Android Studio choose to push my commit over yours 2021-11-24 09:02:00 +05:30
804533133d Remove: Logging of UtilBox 2021-11-24 08:56:22 +05:30
e2781e5e9c Improve: Dispatcher.IO is for IO so use Default for non IO
Improve: Code cleanup
2021-11-24 08:56:21 +05:30
87f19ddc21 Rewrite DefaultInstaller to use PackageInstaller 2021-11-24 01:56:55 +01:00
c2360f492a Fix: Freeze with Root Installer 2021-11-18 11:59:19 +05:30
862c8e7321 Fix: RootInstaller Crash (Closes #120) 2021-11-18 11:41:35 +05:30
bd55becfc9 Improve: Use single Installer instance in whole app 2021-11-16 13:25:36 +05:30
06f6d2b56c Improve: Dont Check Root Permission Recursively 2021-11-13 10:11:23 +05:30
53e9fe9155 Improve: Async Root Uninstall 2021-11-09 10:59:09 +05:30
298c39c99a Improve: Installer Cleanup 2021-11-09 10:56:30 +05:30
95183dde6b Update: Move to androidx.material/appcompat
Auto Format of code
2021-10-27 00:41:20 +05:30
acc5d78664 Add: Long Press on Source Icon to copy link
Fix: Installer Spamming coroutines
Remove: Unused Variables and methods/functions
2021-10-26 15:08:34 +05:30
f6ed45dda2 Fix: Freeze while installing caused by new installer 2021-10-25 10:17:09 +05:30
ab703de3cd Fix: Root Installer Freeze (Again)
Improve: Default Uninstaller moved
2021-10-24 20:06:51 +05:30
2aaec7e022 Add: New Installer Logic 2021-10-24 18:03:35 +05:30