30 Commits

Author SHA1 Message Date
machiav3lli
874370f34a
Merge branch 'master' into installer-improvements 2022-01-04 23:34:54 +01:00
Matthew Crossman
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
Matthew Crossman
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
Matthew Crossman
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
Matthew Crossman
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
Matthew Crossman
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
Matthew Crossman
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
machiav3lli
4778f128f2 Fix: Common content calls 2021-12-24 15:07:45 +01:00
LooKeR
6eb3b96a83 Improve: Remove "Installed" Notification after 5 seconds
Improve: Scrolling performance in AppDetail
2021-12-19 23:29:54 +05:30
machiav3lli
ef1036d8c7 Fix: Root installer 2021-12-16 00:53:40 +01:00
LooKeR
96d8c58a0a Optimize Installer 2021-12-06 00:47:13 +05:30
LooKeR
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
LooKeR
9d05e29481 Update: Use single PackageInstaller for Default 2021-11-25 23:24:57 +05:30
LooKeR
a7728d75f2 Improve: Delete Cached File After Uninstall 2021-11-25 23:24:56 +05:30
LooKeR
84d951328d Improve: Use Default for non-IO operations 2021-11-24 09:04:53 +05:30
LooKeR
5081e1f017 Sry but Android Studio choose to push my commit over yours 2021-11-24 09:02:00 +05:30
LooKeR
804533133d Remove: Logging of UtilBox 2021-11-24 08:56:22 +05:30
LooKeR
e2781e5e9c Improve: Dispatcher.IO is for IO so use Default for non IO
Improve: Code cleanup
2021-11-24 08:56:21 +05:30
Matthew Crossman
87f19ddc21 Rewrite DefaultInstaller to use PackageInstaller 2021-11-24 01:56:55 +01:00
LooKeR
c2360f492a Fix: Freeze with Root Installer 2021-11-18 11:59:19 +05:30
LooKeR
862c8e7321 Fix: RootInstaller Crash (Closes #120) 2021-11-18 11:41:35 +05:30
LooKeR
bd55becfc9 Improve: Use single Installer instance in whole app 2021-11-16 13:25:36 +05:30
LooKeR
06f6d2b56c Improve: Dont Check Root Permission Recursively 2021-11-13 10:11:23 +05:30
LooKeR
53e9fe9155 Improve: Async Root Uninstall 2021-11-09 10:59:09 +05:30
LooKeR
298c39c99a Improve: Installer Cleanup 2021-11-09 10:56:30 +05:30
LooKeR
95183dde6b Update: Move to androidx.material/appcompat
Auto Format of code
2021-10-27 00:41:20 +05:30
LooKeR
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
LooKeR
f6ed45dda2 Fix: Freeze while installing caused by new installer 2021-10-25 10:17:09 +05:30
LooKeR
ab703de3cd Fix: Root Installer Freeze (Again)
Improve: Default Uninstaller moved
2021-10-24 20:06:51 +05:30
LooKeR
2aaec7e022 Add: New Installer Logic 2021-10-24 18:03:35 +05:30