Commit Graph

702 Commits

Author SHA1 Message Date
Aayush Gupta
87dc309d35 PackageManagerReceiver: Rework package install actions
Notify on package installation and delete the downloaded directory

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
e0cda7eadf UpdatesFragment: Listen to install & uninstall events
Similar logic as AppDetailsFragment to update list of updates

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
14c8da2db5 DownloadWorker: Move app installation logic to new onSuccess method
Move app installation logic to onSuccess method in worker under a NonCancellable
context and convert the receiver class to be a generic status handler for anything
except success which should be handled in PackageManagerReceiver.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
e9080614af Drop dependency upon Fetch2 library
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
a796c4c381 SelfUpdateWorker: Move self-updates logic into dedicated worker
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
59309783b1 UpdatesPreference: Setup auto-updates
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
97b145e2e5 DownloadWorker: Download required shared libs for apps
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-27 21:15:00 +05:30
Aayush Gupta
e915c5060b DownloadWorker: Address race condition on download complete
Sometimes when download gets completed, the progress hasn't been updated which
results in no notification data and downloads showing status as completed with
a progress less than 100%.

Set progress manually to 100% and avoid checking progress in notificationUtil if
download has succeded. Also avoid calling onProgress again if download has finished.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-20 21:07:54 +05:30
Aayush Gupta
691a3c61a4 PathUtil: Switch to File instead of Path class
Path is only available since Android 8.0+ and it makes no sense to
add a dependency upon desugaring lib for it.

Switch to File class instead which is available on all Android versions

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-18 23:28:30 +05:30
Aayush Gupta
cd8c4c1364 DownloadWorker: Use a generic download notification if required
On old android versions, work manager runs expedited jobs using FGS which
seem to require a work notification as soon as the service starts by automatically
calling getForegroundInfo method.

This causes an exception as we haven't parsed the data yet. Use a generic
download notification for such cases.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-18 23:28:30 +05:30
Aayush Gupta
70cfdbafd8 DownloadWorker: Inject Gson's instance using Hilt
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-18 23:28:30 +05:30
Aayush Gupta
8f518d026a fixup! Fix AuroraOSS/AuroraStore#981 allow Sui without Shizuku app
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-18 23:28:30 +05:30
Aayush Gupta
ea0bce8c79 fixup! Import and setup Hilt for dependency injection
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:19 +05:30
Aayush Gupta
c7c35da492 DownloadWorkerUtil: Only trigger downloads if app is in foreground
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:19 +05:30
Aayush Gupta
cc0302cbe9 NotificationUtil: Load app's icon into big icon
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:19 +05:30
Aayush Gupta
c9bf37302e AppUpdateView: Use semi-transparent gray color for showing progress
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:19 +05:30
Aayush Gupta
63c55b8858 UpdatesFragment: Refactor to work with new downloads logic
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:19 +05:30
Aayush Gupta
bd55b157e6 DownloadFragment: Refactor to work with new downloads logic
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:19 +05:30
Aayush Gupta
4c932bd048 DownloadWorkerUtil: Use room database to store downloads
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:18 +05:30
Aayush Gupta
acd2e7a586 MainActivity: Warn users if battery optimizations are enabled
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:18 +05:30
Aayush Gupta
f4226ac9ef AppDetailsFragment: Download apps using DownloadWorker
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-14 18:26:18 +05:30
Aayush Gupta
52686adaba BaseFragment: Inject Gson using Hilt
* Make BaseFragment an abstract class, no reason to keep this open
* This also fixes memory leak that happens after onboarding is finished

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-13 12:23:18 +05:30
Aayush Gupta
7420c96b86 Import and setup Hilt for dependency injection
Considering we will be having a room database instance soon for downloads
and already have tons of other instances everywhere, feels right time to
use Hilt to manage them to avoid more memory leaks.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-13 12:23:18 +05:30
Alexander Georgievskiy
ac595c8232 Fix AuroraOSS/AuroraStore#981 allow Sui without Shizuku app 2023-12-07 12:11:35 +00:00
Aayush Gupta
b2cbc8dc16 DownloadWorker: Move downloads observing logic into worker as well
This allows us to keep all the modifications related to DownloadWorker in a
single place.

Also, drop the 3seconds delay and do the cleanup instead of delegating it to
worker if last job was failed. This is better and more error-proof.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-12-01 20:23:06 +05:30
Aayush Gupta
acecf6b89b DownloadWorker: Ensure ell app downloads are unique works
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 19:35:30 +05:30
Aayush Gupta
1e75bcbf85 DownloadWorker: Handle cancelling downloads
* Keep results for 7 days atleast
* Cancel download using tag & remove app from download queue
* Tag downloads and updates. This will allow a user to query & cancel all updates or downloads in one click
* Default to cancel all downloads & updates

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 19:35:16 +05:30
Aayush Gupta
67bd65be94 DownloadWorker: Support downloading OBB and patch files
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
0f4021117f DownloadWorker: Progress improvements
* Handle split apk download progress
* Also share download speed and time remaining

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
5b60758347 InstallReceiver: Notify package installation status as well
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
26c4749047 DownloadWorker: Restrict concurrent downloads to one
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
dcaf4f024a PermissionsFragment: Request users to disable doze during onboarding
* Required for background downloads using WorkManager expedited works

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
932723d784 DownloadWorker: Do cleanup on download failure/cancellation
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
01dee174bc DownloadWorker: Trigger app installation on success
* Transparent dummy activity to trigger installation of apps from notification

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
6f707b2a37 DownloadWorker: Initial implementation
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-29 18:59:17 +05:30
Aayush Gupta
debb0bf920 NetworkPreference: Use M3 ListPreference
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-28 19:58:30 +05:30
Aayush Gupta
feb273687e receiver: Drop unused broadcast receivers
Keep InstallReceiver as that will be used with the upcoming downloads refactor

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-28 18:39:04 +05:30
Aayush Gupta
b4127916ad fixup! Add option to open app-specific setting for installed apps 2023-11-28 18:34:52 +05:30
Aayush Gupta
31e104ba8a App: Update object with installation status
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-28 18:25:24 +05:30
Aayush Gupta
e08ac77b36 Merge branch 'master' into 'master'
Add google play version selection to settings

See merge request AuroraOSS/AuroraStore!263
2023-11-27 15:41:24 +00:00
vladrevers
511e9ce58b Apply suggestions and corrections from code review 2023-11-27 15:51:29 +02:00
Aayush Gupta
2f7c055cdb LocaleView: Show localized display language
display language seems to be more or less always empty/blank. Let's just
use localized display language instead. This will ensure both lines don't show
same values unless same locale is applied.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-27 18:19:04 +05:30
vladrevers
582194bb87 Add google play version selection to settings 2023-11-27 00:01:30 +02:00
Aayush Gupta
59d7f2720b Explicity mark {Native|Service}Installer as deprecated
* Both should be removed in near future to avoid maintainence burden

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-22 16:37:17 +05:30
Aayush Gupta
b8a1495726 Override ListPreferenceDialogs to use MaterialAlertDialog
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-22 16:30:28 +05:30
Aayush Gupta
a644dd397c Partial-revert: Add filter to list & update apps installed by Aurora Store only
Don't filter out packages without launch intent. Some packages provides updates while
not providing a launch intent for users.

Test: Check if "com.google.android.euicc" is visible in blacklist and has updates.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-21 20:14:45 +05:30
Aayush Gupta
d0b65ec3da UpdateWorker: Switch to updates icon
* logo looks too small and bad

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-21 19:51:23 +05:30
Aayush Gupta
850ea1e9fa UpdateWorker: Return success on end of execution
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-21 19:29:05 +05:30
Aayush Gupta
227bc07062 MainActivity*: Improve self-update log messages
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-21 19:08:57 +05:30
ThIsLinked
63460f8629 MainActivity: Restrict self-updates check to non-fdroid builds
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-11-21 19:08:57 +05:30